在同一个事物中 select数据后,再去update这条数据报事物超时异常
实际上由于update时一直获取不到事务锁导致的
伪代码如下
在执行updateEntity时会一直等待 直到事物超时
而换用hibernate的写法却没有问题 如下
这是为什么呢?
实际上由于update时一直获取不到事务锁导致的
伪代码如下
Start TX
selectEntity("select * from Entity where id=10");
updateEntity("update Entity set col1=1 where id=10");
Commit TX
在执行updateEntity时会一直等待 直到事物超时
而换用hibernate的写法却没有问题 如下
Start TX
Entity e = hibernateSession.get(entityId);
e.setProp(10);
hibernateSession.save(e);
Commit TX
这是为什么呢?