私は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("abc@gmail.com");
user.setContact(contact);
pm.makePersistent(user);
}
この登録メソッドを 2 回呼び出した場合 (または、同じユーザー名と電子メール ID のセットで登録フォームを 2 回送信した場合と同等)、データストアは重複キー例外について不平を言いません。
「ユーザー名」をキーとして作成しているため、重複キー例外が発生することが予想されます。しかし、なぜこれが起こらないのですか?
ありがとうマ