知识大全 Hibernate的延迟属性抓取

Posted 字节

篇首语:要让事情改变,先改变自己;要让事情变得更好,先让自己变得更强。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate的延迟属性抓取相关的知识,希望对你有一定的参考价值。

Hibernate的延迟属性抓取  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  再次犯了没有仔细看Hibernate Reference的错误 在Hibernate 以上版本都支持对于property设置 lazy= true 但一直我都以为只要设置了就可以实现的 今天和jindw讨论的时候才知道原来不是这样 ^_^ 赶快做了下试验 确实 即使对于property设置了lazy= true 但在调用获取了po中的任意非主键 属性时其他所有的property也就被加载了 也就是说lazy没有生效 到底怎么回事呢 翻阅Hibernate Reference才明白了这个问题

  property

  ( )lazy (可选 默认为false) 指定实例变量第一次被访问时 这个属性是否延迟抓取(需要运行时字 节码增强)

  其实看这部分会在最后那句需要运行时字节码增强上迷糊 在hibernate reference中还有一句这样的 话 Hibernate也不需要使用任何编译期处理 比如字节码增强操作 它独立的使用Java反射机制和运 行时类增强(通过CGLIB)

  这就非常迷糊了 因为这里已经说了比如字节码增强操作

  不过还好在Hibernate Reference中有个专门的章节来解释property lazy的问题 这个章节就是使用 延迟属性抓取 在这里才算是完全看明白了

   属性的延迟载入要求在其代码构建时加入二进制指令 如果你的持久类代码中未含有这些指令 Hibernate将会忽略这些属性的延迟设置 仍然将其直接载入

  看完这段就明白了 也就是说要在编译期对代码进行字节码增强 关于编译期进行字节码增强的实现 具体见Hibernate Reference 里面列出了一个采用ant task完成编译时字节码增强的实现

  想明白后怀疑是不是Hibernate Reference中文版中翻译错了?写的应该是需要编译时字节码增强吧 果然 查阅了一下Hibernate Reference英文版 上面写的就是requires build time bytecode instrumentation

cha138/Article/program/Java/ky/201311/28278

相关参考

知识大全 hibernate的优化-懒加载(lazy)

  为了进一步优化Hibernate的性能可以使用  延迟加载技术管理数据抓取策略进行缓存管理等方面考虑来提高Hibernate的性能  延迟加载(load)  延迟加载(load)是Hibernat

知识大全 hibernate的延迟加载通用方法

  类名HibernateUtil  packageantbeejeemodelutil;  importjavalangreflectInvocationTargetException;  impo

知识大全 Hibernate的延迟加载,一个锋利的两面刀

Hibernate的延迟加载,一个锋利的两面刀  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  延

知识大全 Hibernate属性查询简介

Hibernate属性查询简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文向大家介绍Hi

知识大全 深入浅出Hibernate的属性查询

深入浅出Hibernate的属性查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  《深入浅出H

知识大全 hibernate中获取关联属性为null的方式

   在Hibernate中获取有关联关系的pojo我是指例如一个User(用户)拥有一个manytoone的属性Unit(单位)但是有时有些用户的Unit属性为空如果按

知识大全 hibernate事务,一级缓存,二级缓存

  通过以上的介绍可以看出hibernate主要从以下几个方面来优化查询性能  降低访问数据库的频率减少select语句的数目实现手段有使用迫切左外连接或迫切内连接对延迟检索或立即检索设置批量检索数目

知识大全 hibernate的查询策略有哪些

导航对象图从一个已经装载的对象开始通过像aUsergetAddress()getCity()的属性访问器方法访问相关的对象如果Session是打开的当你导航图时Hibernate会自动装载图的节点当对

知识大全 hibernate连接查询总结

  假使现在有两张关联表customer和order一般情况下是一个customer可以对应多个order而一个order只能对应一个customer那么order中会有个customer对象作为属性

知识大全 HIbernate的参数使用说明

HIbernate的参数使用说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!set节点有以下属性