1
考慮一個存在於數據庫中的實體。 一個事務中發生下列操作 -在事務中兩次保持同一個實體的錯誤
mainfuntion()
{
transaction.begin();
function1();
if(check some business logic)
{
function2()
}
transaction.commit()
}
function1()
{
query1 - returns Entity
modify Entity;
EntityManager.persist(Entity)
}
function2()
{
query1 - returns Entity
modify Entity
EntityManager.persist(Entity)
}
現在發生的兩處修改作出保留的意義邏輯分開,因此我不希望俱樂部的兩處修改。我也不希望在兩種方法之間傳遞實體。
在提交我得到下面的異常 -
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
誰能告訴我怎麼可以實現無差錯所期望的結果?
在函數2中,合併實體並且不再堅持它 –
試過,如果已經存在於持久性上下文中,則將其合併。不起作用。 :( – akshay202
@LaurentiuL。 – akshay202