我正在使用Hibernate。服务作为Web服务公开。该服务将由2个应用程序调用。服务方法将记录保存到数据库中。
ServiceClass.java:
------------------
//Here Transaction will start
public void saveRecord(SampleEntity entity){
someDAO.saveData(entity);
}
SomeDao.java
-----------------
public void saveData(SampleEntity entity){
//record is saved using saveOrUpdate method
}
如果两个具有相同ID的应用saveRecord
调用了at a time
方法,则会引发PK violation exception
。
两个应用程序都在发送具有相同ID的记录。
当我们使用saveOrUpdate
时,如果记录已经存在,它应该更新记录。
答案 0 :(得分:1)
如果这是在事务中,则该行将被锁定(并且索引不会更新),直到事务提交为止。因此,如果更新发生在提交之前,它可能看起来像具有相同PK的两个插入。