所以当我加载偶数对象时,我没有运气加载场地和艺术家对象。基本上,当我创建一个事件时,我会加载特定的艺术家和特定的场地,并将关键字保存在事件的artistKey和venueKey字段中。但是,当我加载时,它总是为空。我已尝试注释“@ Persistent(defaultFetchGroup =”true“)”以及“@Persistent(mappedBy =”venue“)@Element(dependent =”true“)”对我的场地和艺术家没有运气作为艺术家/场地仍然当我加载一个事件(密钥在那里)时,它变为null。当我尝试使用defaultFetchGroup时,它说我无法加载父项(如果它已经被持久化),这是有意义的我猜。
public class Event {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private Key artistKey;
@Persistent
private Key venueKey;
private Artist artist;
private Venue venue;
//other fields
//getters and setters
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Venue {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
//other fields
//getters and setters
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Artist {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
//other fields
//getters and setters
}
答案 0 :(得分:1)
有关系(在GAE中)你必须注意它们是否拥有(与数据存储区中的拥有对象一起存储)或无主(就像它们在所有其他数据存储区中一样)。如果是后者,您可以将关系标记为@Unowned。 GAE对影响这一点的实体组有一些限制 - 请参阅他们的文档