如果我進行回滾,會話中的實體會發生什麼?交易前他們是否回到狀態?特別是他們獲得新ID嗎?回滾後JPA/Hibernate中的實體狀態和實體ID值
例子:
session.startTransaction();
Entity e = new Entity(); //e.id == null
session.save (e); //suppose it was ok
session.rollback(); // e.id == ???
更新:
我做了Hibernate的4個測試。在測試後,實體已經成爲一個新的ID。
你還測試過嗎?它有用嗎?你還試圖在rollback()之前做一個flush()(這樣你就可以得到一個ID)? –
@AndreiI我已經用Hibernate 4測試過了。這個id被分配給實體,並且在回滾後沒有改變。 – Tony