在本例中,Google App Engine documentation使Customer
成为AccountInfo
实体的实体组父级。难道AccountInfo
不能封装Customer
而不是相反吗?通常,我会认为AccountInfo
类包含关于Customer
的所有信息。
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;
@PersistenceCapable
public class AccountInfo {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
public void setKey(Key key) {
this.key = key;
}
}
// ...
KeyFactory.Builder keyBuilder = new KeyFactory
.Builder(Customer.class.getSimpleName(), "custid985135");
keyBuilder.addChild(AccountInfo.class.getSimpleName(), "acctidX142516");
Key key = keyBuilder.getKey();
AccountInfo acct = new AccountInfo();
acct.setKey(key);
pm.makePersistent(acct);
最佳答案
在现实生活中,客户可以有多个账户,例如活期账户和储蓄账户。作为组织而非个人的客户可能出于不同的目的拥有多个帐户。
因此,让一个客户实体拥有一个或多个accountinfo实体是完全合理的。