我的RecipeJDO包含一个列表< IngredientJDO>。 RecipeJDO
“拥有”成分。这对我来说已经好几周了。现在我想介绍一个新的类“GroceryListJDO”,它引用了各种食谱所拥有的成分。
当我尝试坚持新的GroceryListJDO
时,我得到以下内容:
javax.jdo.JDOException: Duplicate property name: ingredients_id_OWN
NestedThrowables:
org.datanucleus.exceptions.NucleusException: Duplicate property name: ingredients_id_OWN
javax.jdo.JDOException: Duplicate property name: ingredients_id_OWN
似乎RecipeJDO
和GroceryListJDO
之间存在“所有权”问题。
我可能会将GroceryListJDO
更改为仅包含一个List<String>
,它充当IngredientsJDO
的一种外键,但这种方式违背了使用ORM的目的 - 我必须手动获取并附加我的DAO中的成分。
管理需要“附加”到多个容器JDO类的JDO集合的最佳方法是什么?
这是Google App Engine上的JDO,FWIW。
答案 0 :(得分:1)
显然,这被称为“无主”关系,并且在GAE中为not directly supported。解决方法就是我所担心的:只有一个JDO类可以拥有该集合;引用这些对象的任何其他JDO必须仅保留Keys,
并手动管理引用/保存引用的对象。