【问题标题】:JDO: referencing a collection of entities "owned" by another classJDO:引用另一个类“拥有”的实体集合
【发布时间】:2010-12-05 02:31:42
【问题描述】:

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

似乎在RecipeJDOGroceryListJDO 之间存在成分的“所有权”问题。

我可能会将GroceryListJDO 更改为仅包含一个List<String>,它充当IngredientsJDO 的一种外键,但这违背了使用ORM 的目的——我必须手动获取和附加我的 DAO 中的成分。

管理需要“附加”到多个容器 JDO 类的 JDO 集合的最佳方法是什么?

这是在 Google App Engine 上的 JDO,FWIW。

【问题讨论】:

    标签: google-app-engine orm jdo


    【解决方案1】:

    显然,这被称为“无主”关系,在 GAE 中为 not directly supported。解决方法是我担心的:只有一个 JDO 类可以拥有该集合;引用这些对象的任何其他 JDO 必须仅保留 Keys, 并手动管理引用对象的获取/保存。

    【讨论】:

      猜你喜欢
      • 2021-07-18
      • 2019-07-05
      • 2017-09-15
      • 2017-06-17
      • 2022-01-25
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      相关资源
      最近更新 更多