Hibernate第六天.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档