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),數據存儲是不抱怨重複鍵例外。
由於我正在創建「用戶名」作爲我的密鑰,我期待得到重複鍵異常。但爲什麼這不會發生?
感謝 馬