注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小葫芦君(汉斯的博客)

博客迁移到新博客:https://blog.ssxingshou.com

 
 
 

日志

 
 
关于我

小小葫芦商城,为您提供高品质的商品,一流的产品,一流的包装服务,一流的物流服务,放心购买

网易考拉推荐

Hibernate 总结学习三  

2007-08-09 15:31:10|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、Hibernate控制的事务

ACID
atomicity consistency isolation durability

事务保证原子操作的不可分,也就是操作的同时成功或同时失败。
Transaction tran=session.beginTranaction();
tran.commit();
tran.rollback();
以上是事务对象的方法,来实现对事务的支持。

二、hibernate的事务隔离级别

hibernate的事务隔离级别和JDBC中大致相同。
设置时要在hibernate.cfg.xml配置
<property name="hibernate.connection.isolation">4</property>
1,读未提交的数据(Read uncommitted isolation)
2,读已提交的数据(Read committed isolation)
4,可重复读级别(Repeatable read isolation)
8,可串行化级别(Serializable isolation)

三、hibernate的锁(悲观锁,乐观锁)
session.get(User.class , userid , LockMode.UPGRADE);

悲观锁是由数据库本身所实现的,会对数据库中的数据进行锁定,也就是锁行。
LockMode.UPGRADE,修改锁,在get()方法中加上这个设置作为第三个参数。
LockMode.NONE 无锁机制
LockMode.READ 读取锁
LockMode.WRITE 写入锁,不能在程序中直接使用
还可以使用Session.lock() Query.setLockMode() Criteria.setLockMode()方法来设置锁

乐观锁,也就是通过对记录加上某些信息来解决并发访问的问题。

版本检查<version>标签
要在其表中多加上一列表示版本信息,会在读取时读到这个版本号,并在修改之后更新这个版本号,并且只有版本号相同才会予以更新,如果版本号低,就会抛出例外。
<version name="version" column="version" type="integer" />

时间戳
使用时间戳,是通过最后修改时间来判断是否来做更新操作,也就是只有在最后更新时间之后才会做更新。
<timestamp name="updateTime" column="updatetime"/>

四、类继承关系映射

建表策略
(1)所有类建一个表 (2)只为具体类建表 (3)每个类建一个表。

只为具体类建表,使用于不使用多态的情况下,具体类之间没有继承关系时适用
需要针对每个类写映射配置文件,就和普通的单表映射的xml文件相同。
也可以使用一个xml文件来进行映射,可以通过写union-subclass标签来表现其关系
这里不能使用id生成策略中的native,而是要指定特定的生成策略。

例:

<union-subclass name="notpad" table="tpcc_notpad">
<property name="wight" column="wight" type="integer"/>
</union-subclass>
<union-subclass name="desktop" table="tpcc_desktop">
<property name="LCD" column="isLCD" type="yes_no"/>
</union-subclass>[b]

  评论这张
 
阅读(1255)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017