- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hibernate第六天
Hibernate第六天
Hibernate第六天 2007年6月15日
一、复习
实体状态
transient 临时状态 only in memory , not associted with persistent manager , new Entity()
persistent 持久状态 both in memory(associted with persistent manager) and in database
detached 游离状态 both in memory(not associted with persistent manager) and in database
关联关系
J2EE分层
表现层,业务层,数据层
二、Hibernate控制的事务
ACID
atomicity consistency isolation durability
事务保证原子操作的不可分,也就是操作的同时成功或同时失败。
Transaction tran=session.beginTranaction();
mit();
tran.rollback();
以上是事务对象的方法,来实现对事务的支持。
三、hibernate的事务隔离级别
hibernate的事务隔离级别和JDBC中大致相同。
设置时要在hibernate.cfg.xml配置
property name=hibernate.connection.isolation4/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 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
每个类建一个表,可以有效减少数据的冗余,减少字段,查询效率不很高。
正对每个类建一个表,只要写一个配置文件来进行类的映射即可
映射文件中的子类可以使用join-subclass标签来表示,并且引用父类的主键作为共享主键,就是不需要指定id生成策略
例:
hibernate-mapping package=alan.hbn.rel.i
您可能关注的文档
最近下载
- 2025版《煤矿安全规程》宣贯培训课件.pptx VIP
- 2025年中国石油数智研究院秋季高校毕业生招聘60人笔试上岸历年真考点题库附带答案详解.doc
- 变电所改造工程施工方案(3篇).docx VIP
- 欧洲标准化委员化BS EN 10283 - 2010.pdf VIP
- 2025年中国石油数智研究院招聘笔试备考题库(带答案详解).pdf
- 期末模拟质量检测卷-2024-2025学年统编版语文三年级上册.docx VIP
- 山东省建筑施工企业安全生产管理人员安全生产知识考试题库(含答案).pdf VIP
- 城市规划设计计费(2004)中规协秘字第022号.pdf VIP
- 数据库原理及应用教程(MySQL版)全套教学课件.pptx VIP
- 关爱困境儿童让爱守护成长PPT模板.pptx VIP
文档评论(0)