2015-02-10 44 views
0

我希望有人用javax.persistence.EntityManager.persist的行爲()來回答下列不同情況:行爲的EntityManager的堅持時有/無實體IDS GeneratedValue被分離

(請,如果其中一些案件減少到同一案件,也可以這樣說;如果某些案件(即:案件c)由於不同的行爲應該被分離爲僅僅一個案件,那麼也請這樣說)

我堅持的對象:

a)已分離並已具有@GeneratedValue @Id字段已經設置,並且在持久化上下文/數據庫中存在具有相同ID的實體。

b)分離並已經設置了@GeneratedValue @Id字段,但持久性上下文/數據庫中不存在具有相同ID的實體。

c)被分離,但它的@GeneratedValue @Id字段尚未設置。

d)被分離,但其主鍵不是自動生成的,並且已被設置。

回答

0

我已經找到了答案對所有的案件:

一)它會拋出一個EntityExistsException。 b)它將忽略值集合,並且當實體刷新到數據庫時它將設置它自己的生成值。

c)與b相同。

d)只有在PersistenceContext中沒有對象具有相同主鍵的情況下,它纔會持續存在,否則它將拋出EntityExistsException,如同在a中一樣。

相關問題