知识大全 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的性能可以使用 延迟加载技术管理数据抓取策略进行缓存管理等方面考虑来提高Hibernate的性能 延迟加载(load) 延迟加载(load)是Hibernat
类名HibernateUtil packageantbeejeemodelutil; importjavalangreflectInvocationTargetException; impo
Hibernate的延迟加载,一个锋利的两面刀 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 延
Hibernate属性查询简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文向大家介绍Hi
深入浅出Hibernate的属性查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 《深入浅出H
在Hibernate中获取有关联关系的pojo我是指例如一个User(用户)拥有一个manytoone的属性Unit(单位)但是有时有些用户的Unit属性为空如果按
通过以上的介绍可以看出hibernate主要从以下几个方面来优化查询性能 降低访问数据库的频率减少select语句的数目实现手段有使用迫切左外连接或迫切内连接对延迟检索或立即检索设置批量检索数目
导航对象图从一个已经装载的对象开始通过像aUsergetAddress()getCity()的属性访问器方法访问相关的对象如果Session是打开的当你导航图时Hibernate会自动装载图的节点当对
假使现在有两张关联表customer和order一般情况下是一个customer可以对应多个order而一个order只能对应一个customer那么order中会有个customer对象作为属性
HIbernate的参数使用说明 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!set节点有以下属性