浏览 5276 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-22
通过配置传播行为,隔离级别应是不行的把? 我现在的做法是在dao里面直接用悲观锁来弄的 觉的这样太好,如果这个查询方法有时候需要实现行级锁有时候不需要我是否还要写两个不同的方法 比如我每次 select * from table where id=1 取一条商品信息,然后扣款,配送,最后把这个条记录修改为已卖出。 为了防止脏读导致通过select * from table where rownum=1 for update行级锁定 但同时也需要用户可以通过 select * from table where id=1来查询某条制定的道具信息 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-23
select * from table where id =1 with ur;
|
|
返回顶楼 | |
发表时间:2007-12-24
由容器提供的事务管理,是达不到细粒度的行级锁需求的, 这个跟底层数据库实现有关。
不同是DB并发控制的机制不同,有的数据库根本还没有提供行级锁,那就完全没法谈起如何针对特定行获得排他或者共享锁了 JDBC+SQL 操作行级锁是王道 DAO方法可以变通一点嘛,比如: findItem(long ID, boolean needLock); 关于行锁可以参考: http://www.pgsql.org.cn/doc/explicit-locking.html#LOCKING-ROWS http://www.pgsql.org.cn/doc/sql-select.html#SQL-FOR-UPDATE-SHARE |
|
返回顶楼 | |