1

我有一个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。

4

1 回答 1

1

Apparently, this is known as an "unowned" relationship, and is not directly supported in GAE. The workaround is what I feared: only one JDO class can own the collection; any other JDOs that reference these objects must persist only Keys, and manage the fetching/saving of the referenced objects manually.

于 2009-10-09T01:57:28.937 回答