无法在datanucles JDO中将对象保存为多个关系

时间:2013-04-11 03:50:34

标签: database jdo datanucleus

我有一个将对象保存到多对多关系的问题。以下是两个班级。

实体1 =>应用

实体2 =>用户

应用程序可以包含许多用户,用户可以拥有多个应用程序

由于实际的类有很多字段,我只会放置映射的必需部分。

@PersistenceCapable(detachable = "true")
public class Application implements Serializable {
    -----
    @Persistent(table="APPLICATIONUSER")
    @Join(column="APPID")
    @Element(column="USERID")
    private Set<User> users;
}

@PersistenceCapable(detachable = "true")
public class User implements Serializable {
   ----
   @Persistent(mappedBy="users")
   private Set<Application> applications;
}

我已引用网址“http://www.datanucleus.org/products/datanucleus/jdo/orm/many_to_many.html”来查找此映射信息。

现在我想向应用程序添加新用户。以下是我尝试过的两种情况。请注意,所有事务都发生在同一个Persistence Manager对象上。

案例1

  1. 检索现有用户。
  2. 将该用户添加到应用程序
  3. 结果=&gt;成功

    案例2

    1. 创建新用户对象
    2. 设置用户ID
    3. 将该用户添加到应用程序
    4. 结果=&gt; 不工作(不会丢失任何错误。只是数据没有插入)。我想知道为什么我不能只为应用程序添加一个新的User对象并保存它。

      如果有人知道,请告诉我这个问题..谢谢..

1 个答案:

答案 0 :(得分:0)

我找到了这个问题。实际上源代码在一个jar文件中,我正在使用JUnit来测试每个方法。正如我在问题中提到的,没有显示错误,测试用例已经过去了。

但正如“DataNucleus”建议的那样,我启用了log4j,然后我就能找到问题所在。这是因为我没有在User类上设置必填字段。

无论如何我想知道为什么测试用例没有显示这个错误。可能是配置问题。

相关问题