3类:A,B,C。 B扩展A,A具有List ,如何使它们在GAE Java中持久化

| 我的层次结构是: 记录是一个超类,WellnessRecord就是扩展记录的许多类。   还有另一类注意事项。记录拥有一个列表。 现在,我想使用GAE for Java,并在GAE的有关拥有的一对多关系的文档中阅读以下内容后,制作makePersistent(WellnessRecord):http://code.google.com/appengine/docs/java/datastore/ jdo / relationships.html#Owned_One_to_Many_Relationships 我在Note.java中编写了此代码:
@Persistent
private Record record //only for mapping to the owner class
在Record.java中:
@Persistent(mappedBy = \"record\", defaultFetchGroup = \"true\")
@Element(dependent = \"true\") 
protected LinkedList<Note> notes = new LinkedList<Note>();
但是它没有按我预期的那样工作! 我可以通过在WellnessRecord \的可变便笺中添加一个便笺来添加Note()和makePersistence(WellnessRecord) 我可以通过getObjectById()获取特定的WellnessRecord来进行editNote()编辑,当我编辑笔记时,GAE将跟踪修改并自动保存。 但是,当我想要deleteNote()时,总会有例外。 我调试了程序,发现从数据库中获取WellnessRecord并删除
Record
\'
notes
中的
Note
非常顺利,但是,将修改保存到数据库中时会出现异常! 我跟踪了执行过程,发现Note中的\“ record \”变量即使为makePersistent()也仍然为null。 在我的项目中,还有一个具有List的Item类,我类似地编写了@注释,但是addRecord(),editRecord(),deleteRecord()进行得很好。因此问题应该出在GAE对多态性的支持上! 我对该问题的假设是:当addNote()或editNote()时,我首先找到Record,然后通过Record修改Note,因为Record可以轻松找到该Note,所以运行得很好。 但是,当deleteNote()删除内存中的对象后,GAE会跟踪修改并想删除数据库中的注释,但是由于注释的\“ record \”为注释,因此它无法通过注释找到所有者记录。空值。 那是我详细的问题。 一句话:3个类:A,B和C。B扩展了A,A有一个List,如何使它们在GAE Java中持久化? 任何建议表示赞赏!     
已邀请:

要回复问题请先登录注册