Hibernate抓取策略Lazy是可以延迟抓取的,即直到应用程序对集合进行了操作,才会去抓取
JPA标注使用抓取策略Lazy时,当我去使用集合时却报session缓存中没有集合数据异常,
没有延迟抓取,应该不是类似hibernate get和Load的问题啊
JPA和Hibernate的抓取策略Lazy到底有何异同?
JPA标注使用抓取策略Lazy时,当我去使用集合时却报session缓存中没有集合数据异常,
没有延迟抓取,应该不是类似hibernate get和Load的问题啊
JPA和Hibernate的抓取策略Lazy到底有何异同?
在lazy情况下,如果事务关闭了,你再取是会报错误的。
使用(hibernate/jpa)opensessioninviewfilter就不会了
web.xml中配置:
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
嘿嘿,虽然回复的内容跟楼主的问题木有关系,但是看到了火龙果的回复之后有点儿激动,楼主见谅。
不过,如果并非量可以忽略的话,这种偷懒的模式(不需要手工控制session/trasaction)还可以考虑的
如果在DAO底层就把所有的数据实现强制加载不是和FethType.EAGER就一样了么
我花了一天的时间想到了一些思路贴出来供大家参考吧
目标:实现动态强制加载
使用Hibernate的Criteria条件查询(参考Hibernate3.2手册 15.5动态关联抓取)
在Action里面通过Service业务方法,通过参数方式传递我要加载的数据
然后再底层使用Criteria.setFetchMode("XXX","FetchMode");
这样初步实现了动态加载了
可以强制加载??假设onetoone 设置为lazy ,怎么强制加载?我已经设置为lazyl