0
我是新来GAE特别是对于数据存储(JDO)GAE与数据存储(JDO)
我有一个对象组成:用户对象有联系对象的引用。 我可以将它们存储在数据存储中。但是代码允许存储具有相同“用户名”的多个对象,该用户名被定义为主键。
这里是代码片段
//User class
@PersistenceCapable (identityType = IdentityType.APPLICATION)
public class User{
@PrimaryKey
@Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY)
String username;
@Persistent
Contact contact;
//getters and setters
}
// Contact class
@PersistenceCapable (identityType = IdentityType.APPLICATION)
public class Contact {
@PrimaryKey
@Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key username;
@Persistent
String Phone1;
}
//DAO class
public void register() {
User user = new User();
user.setUserName("abc");
Contact contact=new Contact();
contact.setEmail("[email protected]");
user.setContact(contact);
pm.makePersistent(user);
}
如果我把这个注册方法两次(或相当于提交登记表两次同一套用户名和电子邮件的ID),数据存储是不抱怨重复键例外。
由于我正在创建“用户名”作为我的密钥,我期待得到重复键异常。但为什么这不会发生?
感谢 马