- 浏览: 887346 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
Hibernate3开始增加了通过property节点的lazy属性,为特定的属性指定延迟加载策略,以避免实体整体加载可能带来的性能浪费,尤其是像长文本之类的大字段。那么实现属性延迟加载需要做两件事:
1.修改映射配置文件,将需要延迟加载的字段增加lazy属性并设置成true;
2.与实体和集合类型的延迟加载不同,Hibernate3属性延迟加载机制在配置外,还需要用类增强器对二进制Class文件进行强化处理(借助ANT)
下面来演示下如何用ANT调用Hibernate类增强器对class文件进行强化处理.
1.下载ANT,配置ANT环境;(如果有Eclipse,直接就可以用它的ant);
2.新建ANT的build.xml脚本;
<?xml version="1.0" encoding="UTF-8"?>
<project name="hibernatelazy" default="instrument" basedir=".">
<property name="lib.dir" value="./lib"/>
<property name="classes.dir" value="./classes"/>
<path id="lib.class.path">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="instrument">
<taskdef name="instrument" classname="org.hibernate.tool.instrument.InstrumentTask">
<classpath path="${classes.dir}"/>
<classpath refid="lib.class.path"/>
</taskdef>
<instrument verbose="true">
<fileset dir="${classes.dir}/com/derek/known/hbm">
<include name="Knownquestions.class"/>
</fileset>
</instrument>
</target>
</project>
其中注意
<property name="lib.dir" value="./lib"/>所需的JAR文件路径
<property name="classes.dir" value="./classes"/>编译输出路径
就我的工程而言:
我把build.xml放在了WEB-INF目录下,输出路径就设置为该目录下的classes目录,待增强的字节码文件为classes目录下的com/derek/known/hbm/Knownquestions.class; 在命令行下切换到此目录,执行ant命令,即生成新的Knownquestions.class
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lansky07/archive/2008/10/21/3115742.aspx
发表评论
-
Criteria查询,DetachedCriteria离线查询 --做综合查询
2011-09-06 00:25 1597通过Session得到Criteria类的对象 Ja ... -
Hibernate批量操作(JDBC批量操作)
2011-09-06 00:24 1293部分内容转自 :http://ga ... -
Hibernate懒加载深入分析
2011-09-06 00:19 1324懒加载可以提高性能吗? 不可以简单的说"能" ... -
getSesson currentSession
2011-09-06 00:15 10001 getCurrentSession创建的session会和 ... -
Hibernate 操作Blob Clob
2011-09-05 23:46 1068Photo.java Java代码 i ... -
Hibernate建表错误,Could not determine type for: java.util.List
2011-04-04 22:19 1641今天遇到 Could not determine type f ... -
Hibernate的fetch="join"和fetch="select"
2011-03-24 14:16 969fetch参数指定了关联对 ... -
Hibernate的Criteria用法总结
2011-03-23 10:53 776最近在项目中使用 Struts 和 Hibernate 进行开 ... -
第29讲--为Spring集成的Hibernate配置二级缓存
2011-03-10 23:16 1100合理的使用缓存策略,往往在web开发中提高性能起到关键作用。 ... -
hibernate抓取策略
2011-02-12 13:23 819Hibernate最让人头大的就是对集合的加载形式。书看了N次 ... -
Hibernate笔记:HQL查询总结(一)——简单属性查询和实体对象查询
2011-02-01 23:38 3493本文一部分转自kuangbaoxu的博文hibernate-- ... -
Hibernate笔记:HQL查询总结(二)——条件查询
2011-02-01 23:35 1507条件查询 1.拼字符串 where条件后面,可以用字 ... -
Hibernate中的cascade和inverse
2011-01-31 00:31 993这两个属性都用于一多对或者多对多的关系中。而inverse特别 ... -
batch_size 和 fetch_size作用
2010-12-01 21:37 1279hibernate抓取策略,,batch-szie在< ... -
hibernate中SQLQuery的addEntity();方法
2010-10-20 10:48 2770如果使用原生sql语句进行query查询时,hibernate ... -
Hibernate的evict方法错误总结
2010-10-14 10:08 1208摘自百度知道:http://zhi ... -
hibernate中get方法和load方法的区别
2010-10-14 09:57 799键字: hibernate get load 区 ... -
Hibernate: 设A引用了B,则删A后可能要evict(A.getB())
2010-10-14 09:56 1000Hibernate: 设A引用了B,如果要先取A删A再取B删B ... -
Hibernate的flush()和evict()总结
2010-10-14 09:53 1323关键字: hibernate flush() evict() ... -
flush,commit,evict
2010-10-14 09:52 921Flush()后只是将Hibernate缓存中的数据提交到数据 ...
相关推荐
hibernate3的属性延时加载是个很有意义的东西,它能让你把你不想加载到内存里的东西在查询的时候排除。 我相信来下载这个东西的人都已经很了解这一块的知识了,只是配不对那个类增强器才来下载我这个文件。 这些...
在 Hibernate 框架中,延迟加载...总的来说,Hibernate 的集合属性延迟加载是一个强大的工具,可以有效减少内存占用和提高应用程序性能。正确理解和使用延迟加载,可以帮助我们构建高效、可扩展的 Java 应用程序。
### Hibernate延迟加载深入剖析 #### 一、概述 在现代软件开发中,特别是与数据库交互的应用场景下,Hibernate作为一款流行的Java持久层框架,提供了多种高效处理数据的技术。其中,延迟加载(Lazy Loading)是一...
总的来说,Hibernate的延迟加载是通过在映射文件中配置延迟加载策略,以及利用Java动态代理技术,实现对集合属性的按需加载。它降低了系统的内存压力,提高了数据库操作的效率,是Hibernate优化性能的重要手段之一。...
在Hibernate中启用实体对象的延迟加载,需在实体的映射配置文件中设置`lazy="true"`属性。例如: ```xml <hibernate-mapping> ... </hibernate-mapping> ``` 当执行`session.load()`方法时,如`User user = ...
- `lazy="proxy"`:表示Hibernate将为`Dept`实体创建一个代理对象,只有当真正访问到`Dept`对象的相关属性时,Hibernate才会发起数据库查询,加载实际的`Dept`对象。 - `fetch="select"`:默认值,表示在查询`Emp`时...
要在Hibernate中启用实体对象的延迟加载,需要在映射文件中为相应的类添加`lazy="true"`属性,例如: ```xml ... ``` **工作原理:** 当执行如下代码时: ```java User user = (User) session.load(User....
在开发Flex与Hibernate集成的应用时,延迟加载(Lazy Loading)是一个常见的挑战,因为Flex客户端无法直接理解和处理Hibernate的延迟加载机制。延迟加载是一种优化策略,它允许关联的对象在真正需要时才被加载,而...
在Java的持久化框架Hibernate中,懒加载(Lazy Loading)是一种重要的优化策略,它的核心思想是“延迟加载”或“按需加载”。默认情况下,当一个实体被加载时,并不会立即加载其关联的对象或集合,而是在真正需要...
在处理大数据量或者复杂数据结构时,Hibernate引入了延时加载(Lazy Loading)机制,以提高应用程序的性能。本文将深入探讨在JSP(JavaServer Pages)环境中,如何理解和应对Hibernate的延时加载问题。 首先,我们...
Hibernate的延迟加载(Lazy Loading)和懒加载机制(Lazy Initialization)是优化ORM框架性能的重要策略。这个机制的主要目的是提高程序的效率,减少不必要的数据库交互,只在真正需要数据时才去加载它们。以下是对...
在Hibernate中,延迟加载分为三种主要类型:实体对象的延迟加载、集合类型的延迟加载以及属性延迟加载(在Hibernate 3及以上版本支持)。 ### 实体对象的延迟加载 在Hibernate映射文件中,可以通过将`<class>`标签...
本文将深入探讨Hibernate中的延迟加载,包括实体对象、集合类型和属性的延迟加载。 一、实体对象的延迟加载 在Hibernate中,实体对象的延迟加载可以通过在映射文件中设置`lazy="true"`来启用。例如,对于名为`...
属性延迟加载是Hibernate框架中的一种优化策略,旨在提高数据加载效率,减少内存占用,特别是对于包含大字段(如长文本)的实体属性。在Hibernate3版本中,通过`property`节点的`lazy`属性,我们可以指定某个属性...
在 Hibernate 中,延迟加载支持对实体对象、集合以及属性级别的延迟加载。 #### 三、实体对象的延迟加载 实体对象的延迟加载是 Hibernate 中最基础也是最常用的延迟加载方式之一。要启用实体对象的延迟加载,需要...
3. **按需加载(On-Demand Loading)**:懒加载的一种特例,只在调用特定方法或属性时加载关联数据。 4. **集合加载策略**:对于一对多或多对多的关系,可以设置不同的集合加载策略,如`FetchType.LAZY`和`...
### Hibernate延迟加载详解 #### 什么是Hibernate延迟加载? 在探讨Hibernate延迟加载之前,我们先简要回顾一下Hibernate框架。Hibernate是一种流行的Java持久层框架,它提供了对象关系映射(ORM)的功能,允许...