1. 程式人生 > >identifier of an instance of was altered from to null

identifier of an instance of was altered from to null

Hibernate的提示錯誤
Caused by: org.hibernate.HibernateException:
identifier of an instance of ... is alterde from 150 to null

原始碼如下:

這個錯誤是由於在一個事務中更新了主鍵,而主鍵是不能被更新的.
這段程式碼的錯誤在PoItem poItem=new PoItem();
這句程式碼放在for迴圈的外面,因此每次迴圈插入的時候,Hibernate認為只是一個物件,主鍵被更新,因此報錯,如果放在for迴圈裡面,就正常了,每次插入都是一個新的物件.
正確的程式碼如下: