Hibernate中LockMode 在oracle9i中的效果
来源:互联网 发布:招聘源码 编辑:程序博客网 时间:2024/06/06 14:32
LockMode
int level;
String name;
锁的级别:
NONE:0
READ:5
UPGRADE:10
UPGRADE_NOWAIT:10
WRITE:10
FORCE:15
notice:WRITE lock is not a valid mode for load() or lock()
如果使用的是oracle9i数据库则,相应的锁所产生的SQL语句如下:
Method: session.load():
LockMode.UPGRADE_NOWAIT
for update nowait
LockMode.UPTRADE
for update
LockMode.WRITE
an exception occur
LockMode.READ
as none
Method: query.setLockMode():
LockMode.UPGRADE
for update of echoinfo0_.ID
LockMode.UPGRADE_NOWAIT
for update of echoinfo0_.ID nowait
LockMode.WAIT
for update of echoinfo0_.ID
LoclMode.READ
这里提供一个程序实现的样例:java 代码
- /*
- * Created on 2007-5-17
- */
- package com.snow.hib.oracle;
- import org.hibernate.*;
- import org.hibernate.LockMode;
- /**
- *@author anwxAn Weixiao
- *@version $Id$
- */
- public class Test {
- private static final Session session = HibernateUtil.currentSession();
- /**
- * demo method one
- * @param id
- * @return
- */
- public EchoInfo findEchoInfo(String id) {
- /*
- * select
- * echoinfo0_.ID as ID0_0_,
- * echoinfo0_.MESSAGE as MESSAGE0_0_
- * from
- * Echo_Info_anwx echoinfo0_
- * where
- * echoinfo0_.ID=?
- * LockMode.UPGRADE_NOWAIT
- * for update nowait
- * LockMode.UPTRADE
- * for update
- * LockMode.WRITE
- * an exception occur
- * LockMode.READ
- * as none
- */
- EchoInfo info = (EchoInfo) session.load(EchoInfo.class, "123456",
- LockMode.READ);
- return info;
- }
- /**
- * demo method two
- *
- */
- public static void getCounts() {
- /*
- * select
- * echoinfo0_.ID as ID0_0_,
- * echoinfo0_.MESSAGE as MESSAGE0_0_
- * from
- * Echo_Info_anwx echoinfo0_
- * --下面是使用不同级别的锁所产生的不同的SQL in oracle9i
- * LockMode.UPGRADE
- * for update of echoinfo0_.ID
- * LockMode.UPGRADE_NOWAIT
- * for update of echoinfo0_.ID nowait
- * LockMode.WAIT
- * for update of echoinfo0_.ID
- * LoclMode.READ
- *
- */
- int counts = 0;
- try {
- Query query = session.createQuery("from EchoInfo m");
- query.setLockMode("m", LockMode.WRITE);
- counts = query.list().size();
- } catch (HibernateException e) {
- System.out.println("error occur");
- }
- System.out.println("counts:" + counts);
- }
- public static void main(String[] args) {
- Test test = new Test();
- System.out.println("Start.");
- EchoInfo info=test.findEchoInfo("123456");
- System.out.println("ID: "+info.getId());
- System.out.println("Message:"+info.getMessage());
- getCounts();
- session.close();
- }
- }
- Hibernate中LockMode 在oracle9i中的效果
- Hibernate--LockMode
- hibernate lockmode
- Hibernate的LockMode
- Hibernate 的 LockMode
- Hibernate的LockMode
- Hibernate的LockMode
- Hibernate的LockMode
- 在oracle9i中创建数据库
- LockMode
- Spring + Hibernate + Oracle9i中使用Clob
- hibernate lockMode(乐观锁和悲观锁)
- hibernate之锁表LockMode.UPGRADE
- 在Oracle9i中计算时间差--Donald Bunleson
- 在Oracle9i中使用多种Block Size
- 在oracle9i中创建一个服务
- Spring+hibernate+Oracle9i+CLOB
- 在oracle9i,如何在PL/SQL中读写文件
- Linux
- 用php发送第一封邮件
- tail: 无法打开“+2” 读取数据: 没有那个文件或目录
- Struts2+Spring2+Hibernate3 web应用示例(四)
- Struts2+Spring2+Hibernate3 web应用示例(五)
- Hibernate中LockMode 在oracle9i中的效果
- 对于文本流,文件流,网络流和网络上通讯的操作
- 常用GJB文档
- Struts2+Spring2+Hibernate3 web应用示例(六)
- Struts2+Spring2+Hibernate3 web应用示例(七)
- 利用XmlBean轻松读写xml(转)
- Get是不安全的
- Java equals 和== 区别
- 起码数学常识凸显中学数学的重大错误0