在本例中,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实体是完全合理的。

09-10 07:14