0
我刚刚注意到我工作的代码的一部分保存了两次相同的实体。 我尝试了几个技巧,例如flush()和Transaction REQUIRES_NEW,但没有任何技巧。 但在调用persist(实体)后,我可以看到调试时,我得到该实体的ID(IDENTITY)...但稍后在代码中,如果我查看变量,我将看到相同的实体一个不同的ID和两个包含表中这些ID的迭代。JPA坚持两次相同的实体
这是使用Java EE 6的Glassfish 3.0.1
请添加您的实体代码和您用来保存它的代码。 – 2010-08-22 20:54:34
它实际上使用由Netbeans生成的代码。 在这种情况下,我有一个Servlet调用会话bean的方法,只需执行一个 getEntityManager()。persist(entity); 所以,当我调试时,我的Servlet调用会话bean后,只有几行,我可以看到实体的ID改变,并在数据库中。 和我猜会是在实体有趣的部分: @Id @GeneratedValue(策略= GenerationType.IDENTITY) @Basic(可选=假) @Column(name = “MEMBER_ID”) 私人整数MEMBERID; – 2010-08-22 21:16:55
无法用当前级别的详细信息回答。请提供一些代码,显示您在哪个点“看到”不同的ID。 – 2010-08-22 22:24:08