- 浏览: 254516 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (232)
- 瞎扯两句 (8)
- 操作系统 (5)
- 工作笔记 (33)
- 设计模式 (1)
- java (57)
- Java IDE (7)
- hibernate (17)
- oracle (46)
- ms sql (2)
- spring (9)
- struts2 (0)
- javascript (16)
- java_code (2)
- java之集合 (2)
- java之线程 (4)
- java之IO (4)
- java之虚拟机 (6)
- java之异常 (0)
- EJB (4)
- XML (4)
- 数据结构-算法 (2)
- 架构设计 (5)
- 配置信息 (2)
- 阅读笔记 (6)
- IT专业英语 (1)
- PI (0)
- 单元测试 (1)
最新评论
转
在使用hibernate进行持久化时,有时需要动态的改变对象的加载,比如在编辑页面里面lazy=true,而在浏览页面lazy=false,这样可以在需要lazy的地方才进行控制。而配置文件中Lazy属性是全局控制的,如何处理呢?
当元素或者元素的lazy属性为true时,load() or get() or find()加载这些对象时,Hibernate不会马上产生任何select语句,只是产生一个Obj代理类实例,只有在session没有关闭的情况下运行Obj.getXxx()时才会执行select语句从数据库加载对象,如果没有运行任何Obj.getXxx()方法,而session已经关闭,Obj已成游离状态,此时再运行Obj.getXxx()方法,Hibernate就会抛出"Could not initialize proxy - the owning Session was closeed"的异常,是说Obj代理类实例无法被初始化。然而想在Session关闭之前不调用Obj.getXxx()方法而关闭Session之后又要用,此时只要在Session关闭之前调用Hibernate.initialize(Obj)或者Hibernate.initialize(Obj.getXxx())即可,net.sf.hibernate.Hibernate类的initialize()静态方法用于在Session范围内显示初始化代理类实例。
在配置文件里面可以用lazy=true,在程序里面可以用强制加载的方法Hibernate.initialize(Object proxy) 方法强制加载这样就相当于动态改变为lazy=false。
但在使用时需要注意的一点是:其中的proxy是持久对象的关联对象属性,比如A实体,你要把A的关联实体B也检出,则要写Hibernate.initialize(a.b)。
在使用hibernate进行持久化时,有时需要动态的改变对象的加载,比如在编辑页面里面lazy=true,而在浏览页面lazy=false,这样可以在需要lazy的地方才进行控制。而配置文件中Lazy属性是全局控制的,如何处理呢?
当元素或者元素的lazy属性为true时,load() or get() or find()加载这些对象时,Hibernate不会马上产生任何select语句,只是产生一个Obj代理类实例,只有在session没有关闭的情况下运行Obj.getXxx()时才会执行select语句从数据库加载对象,如果没有运行任何Obj.getXxx()方法,而session已经关闭,Obj已成游离状态,此时再运行Obj.getXxx()方法,Hibernate就会抛出"Could not initialize proxy - the owning Session was closeed"的异常,是说Obj代理类实例无法被初始化。然而想在Session关闭之前不调用Obj.getXxx()方法而关闭Session之后又要用,此时只要在Session关闭之前调用Hibernate.initialize(Obj)或者Hibernate.initialize(Obj.getXxx())即可,net.sf.hibernate.Hibernate类的initialize()静态方法用于在Session范围内显示初始化代理类实例。
在配置文件里面可以用lazy=true,在程序里面可以用强制加载的方法Hibernate.initialize(Object proxy) 方法强制加载这样就相当于动态改变为lazy=false。
但在使用时需要注意的一点是:其中的proxy是持久对象的关联对象属性,比如A实体,你要把A的关联实体B也检出,则要写Hibernate.initialize(a.b)。
发表评论
-
浅谈hibernate性能优化的几点建议
2012-05-17 16:41 752浅谈hibernate性能优化的几点建议1、针对oracle数 ... -
AAAAAAAAAAA
2012-05-17 16:22 789相信越来越多的web开发 ... -
hibernate 效率问题总结
2012-05-17 16:14 921一、“精心编写”的JDBC ... -
Hibernate 批量删除 问题
2012-05-17 15:24 858批量处理数据 通常, ... -
Hibernate 二级缓存
2012-04-20 10:35 904二级缓存 Hibernate 对数据的缓存包括两个级: ... -
hibernate对象的三种状态及之间的转换 .
2012-04-20 10:36 1114Hibernate的对象有3种状态,分别为:瞬时态(Trans ... -
hibernate之检索策略与检索方式
2012-03-11 10:54 908检索策略包括 立即检索 延迟检索 迫切左外连接 类级别的可以 ... -
spring+hibernate中处理oracle BLOB
2012-02-28 16:11 8731、配置hibernate: 1.1、配置hiber ... -
使用JDBC和Hibernate来写入Blob型数据到Oracle中(1)
2012-02-28 16:09 835转 Oracle的Blob字段比较特殊,他比long字段的性 ... -
HibernateTemplate 源码分析(三)OpenSessionInViewFilter
2012-02-20 11:45 1069OpenSessionInViewFilter作为一个filt ... -
HibernateTemplate 源码分析(二)
2012-02-20 10:44 1098在Spring中使用Hibernate的方法: 因为最终需 ... -
threadlocal threadlocalMap 在hibernate spring中的应用
2012-02-16 16:45 1176之前看资料,总说spring hibernate 是通过thr ... -
理解ThreadLocal
2012-02-16 15:35 727理解ThreadLocal . ThreadLocal是 ... -
Spring+Hibernate 之懒加载问题的解决
2012-02-15 17:30 731http://blog.csdn.net/aspdao/art ... -
关于OpenSessionInView
2012-02-15 16:49 1155关于OpenSessionInView . 简而言之,就是通 ... -
OpenSessionInViewFilter源码分析
2012-02-15 16:32 1167OpenSessionInViewFilter源码 ... -
HibernateTemplate 源码分析 之模板模式(一)
2012-02-15 16:04 146HibernateTemplate 从名成上看,其采用了设计模 ... -
HibernateTemplate 源码分析(一)
2012-02-15 16:02 1HibernateTemplate 从名成上看,其采用了设计模 ... -
关于配置文件中的property属性与set,get方法
2012-02-14 23:34 178一直以为在配置文件中有一个property,对应的class里 ...
相关推荐
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:225) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService...
`this` 关键字在JavaScript中扮演着核心角色,它指的是函数调用时的上下文,而 `initialize` 通常是一个构造函数,`apply` 是一个内置方法,用于改变函数调用时的上下文(`this` 值)并传入参数。 首先,让我们理解...
在描述"延迟加载类Lazy的使用示例"中,我们可以预期在`Lazy.Object.Initialize.Console`这个项目中包含一个使用`Lazy<T>`的控制台应用程序示例。这个示例可能展示了如何在多线程环境中利用`Lazy<T>`确保安全初始化,...
Ajax-jquery.initialize.zip,用于动态创建元素初始化的jquery插件(几年前很好,在2019年 考虑react或其他东西而不是jquery),ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和...
3. **Hibernate的Hibernate.initialize()方法**:在需要使用懒加载属性的地方,手动调用此方法初始化代理对象。但这需要在业务代码中显式处理,不够优雅。 4. **使用Hibernate的Criteria API或HQL查询**:在查询时...
jquery.initialize 1.4.0 1.4.0 之前的最新更新:添加了子元素数据绑定。 最新更新至 1.3.0:数据属性、模板属性和字符串模板替换。 一个简单的 jQuery 元素初始值设定项上下文插件。 该插件使元素初始化并将定义...
此外,VC++还支持C++标准模板库(STL)中的`vector`,它可以动态调整大小,并且提供了一种更高级的初始化方法: ```cpp std::vector<int> vec = {1, 2, 3, 4, 5}; // 使用vector,同样接受初始化列表 ``` 总之,...
解决方案:检查hibernate.cfg.xml文件中的dialect属性,确保其与使用的数据库类型相匹配,例如MySQL应设置为`<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>`。同时,确认项目...
\\.\Global\vmx86虚拟机启动过程中,报这种错误,然后启动不了。 本文档可以很好的解决这个问题。
避免这个问题的方法是在访问懒加载属性之前确保Session仍然打开,或者显式地在需要时加载属性,如使用`Hibernate.initialize()`方法。 ### 5. MappingException - **MappingException: Error reading resource**:...
import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; /** * Configures and provides access to Hibernate sessions, tied to the * current ...
在 Web 应用中,为了初始化对象关系,可能需要使用 Hibernate 的 `initialize()` 方法,如 `Hibernate.initialize(student.getFriends())` 来加载关联的对象。此外,`<property name="show_sql">true</property>` ...
在这个类中,我们可以覆盖`initialize`方法来设置验证参数,以及`isValid`方法来执行具体的验证逻辑。 在5.1.2.Final版本中,Hibernate Validator引入了新的特性和改进。例如,它可能包含了对国际化的更好支持,...
5. **代码错误**:可能在代码中直接或者间接地尝试实例化`JRStyledTextParser`时,出现了错误,如使用了错误的方法或参数。 6. **系统限制**:在某些情况下,操作系统或JVM的安全限制可能会阻止加载特定的类。 ...
`org.hibernate.persister.collection.AbstractCollectionPersister`和`org.hibernate.action.internal.CollectionRemoveAction`等类是处理多对多关联删除的关键。通过阅读源码,我们可以了解到Hibernate如何处理...
- 如果采用了延迟加载机制但希望在某些情况下实现非延迟加载,可以通过`Hibernate.initialize()`方法强制加载关联对象。 #### 十一、对象持久化操作 - 对于`save`操作,如果对象已经与`Session`关联,则无需额外...
如果需要立即加载对象,可以使用`Hibernate.initialize()`方法。 在映射文件中,我们需要为Java类型指定对应的Hibernate类型,例如: - 基本类型及其封装类:整数、浮点数、字符型、布尔型等。 - 字符串:使用`...
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter <filter-name>OpenSessionInViewFilter *.action ``` 在上面的配置中,我们定义了一个名为 OpenSessionInViewFilter 的 ...
源码中可以看到,`Configuration`通过`doConfigure()`方法加载配置信息,然后调用`buildSessionFactory()`生成`SessionFactory`,这是整个Hibernate的核心。 2. **实体管理** Hibernate中的`Entity Manager`是JPA...
### LoadRunner11回放脚本出现“Vuser failed to initialize extension LrXml.dll”提示的解决方法 #### 问题背景 在使用LoadRunner11进行性能测试的过程中,尤其是在Windows XP系统环境下,用户可能会遇到一个...