JDO,GAE:按子键加载对象组

时间:2009-11-01 12:06:43

标签: java google-app-engine persistence jdo

我拥有两个对象之间的一对多关系:

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class AccessInfo {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private com.google.appengine.api.datastore.Key keyInternal;     
    ...     
    @Persistent
    private PollInfo currentState;

    public AccessInfo(){}

    public AccessInfo(String key, String voter, PollInfo currentState) {
        this.voter = voter;
        this.currentState = currentState;
        setKey(key); // this key is unique in whole systme
    }

    public void setKey(String key) {
        this.keyInternal = KeyFactory.createKey(
                AccessInfo.class.getSimpleName(),
                key);
    }

    public String getKey() {
        return this.keyInternal.getName();
    }

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class PollInfo
{
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;

    @Persistent(mappedBy = "currentState")
    private List<AccessInfo> accesses;
    ...

我创建了一个类PollInfo的实例并使其成为持久性。没关系。 但后来我想通过AccessInfo键加载这个组,我得到异常NucleusObjectNotFoundException。 是否可以按孩子的钥匙加载一个组?

1 个答案:

答案 0 :(得分:0)

也许如果您引用代码来检索AccessInfo对象以及如何获得您使用的“密钥”?