【发布时间】:2020-05-19 15:29:48
【问题描述】:
我在我的界面中应用了@Transactional,在我的serviceImpl里面,对应的方法在调用其他一些方法,一个方法是读,另一个方法是写。虽然我已经注释为事务,但当我发出并发请求时,我的插入方法会抛出 org.hibernate.exception.LockAcquisitionException: 错误。
另一个问题是,这个 insert 方法是一个共享方法,它执行类似于 Dao.save(obj) 的 insert 方法。 Dao.save() 是一个通用方法所以我不能在这里做任何事情。我必须在界面上应用一些东西以避免没有锁定异常。
是否可以告诉等待直到获得锁定?还是交易失败时重试?还是锁定所有表直到事务完成,使另一个请求无法访问相关资源?
我的hibernate版本是3.x,数据库是mysql 5.6
【问题讨论】: