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