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