0

我对将对象保存到多对多关系有疑问。以下是两个类。

实体 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;
}

我参考了 URL“ http://www.datanucleus.org/products/datanucleus/jdo/orm/many_to_many.html ”来查找这个映射信息。

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

情况1

  1. 检索现有用户。
  2. 将该用户添加到应用程序

结果 => 成功

案例2

  1. 创建一个新的用户对象
  2. 设置用户标识
  3. 将该用户添加到应用程序

结果 =>不工作(它没有抛出任何错误。只是没有插入数据)。我想知道为什么我不能只向应用程序添加一个新的用户对象并保存它。

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

4

1 回答 1

0

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

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

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

于 2013-04-12T00:23:58.600 回答