社区
Java EE
帖子详情
hibernate的缓存
a1123454
2008-12-02 02:08:26
有3张关联的表,UserInfo,UserFace,Topic,其中UserInfo的 faceID对应UserFace的主键,Topic的userID对应UserInfo的主键,
用SSH框架获得Topic中用户的皮肤的name 即${topic.userInfo.userFace.name}.提示报错,session关闭。
但我可以获得${topic.userInfo.username}.
各位大侠,这样怎么解决
...全文
131
7
打赏
收藏
hibernate的缓存
有3张关联的表,UserInfo,UserFace,Topic,其中UserInfo的 faceID对应UserFace的主键,Topic的userID对应UserInfo的主键, 用SSH框架获得Topic中用户的皮肤的name 即${topic.userInfo.userFace.name}.提示报错,session关闭。 但我可以获得${topic.userInfo.username}. 各位大侠,这样怎么解决
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gongyali2005
2008-12-08
打赏
举报
回复
opensessioninviewfilter应该可以解决
East271536394
2008-12-03
打赏
举报
回复
${topic.userInfo.userFace.name}.提示报错,session关闭。
肯定是不能这样用的,原因是:Session的Scope只在这个类中,
你在JSP中用了,肯定是报错...
然月枕流君
2008-12-02
打赏
举报
回复
懒加载问题
解决hibernate懒加载的问题:
<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>
scorpionqxq
2008-12-02
打赏
举报
回复
首先确保配置正确。延迟加载下,session关闭,是因为你取得 topic 对象后,session.close()了;(仔细检查代码)
这时只得到了 topic 的对象中自身的属性,并没有得到 级联对象的那个属性。如:
也就是说 topic 对象的 userInfo 属性值没有得到。所以,你再 ${topic.userInfo.username} 时候就会报错:session关闭
解决办法:
1. 取得 topic 对象后不要session.close(),使用完 ${topic.userInfo.username} 后再关闭。这样的话就得要好好考虑什么时候关闭session了。
2. 再写个topic相对应的DTO类:Data Transfer Object(数据传输对象),也是先不关闭 session ,得到 topic 后,把要显示到页面的信息传给topic对应的DTO类,在关闭session,页面上只需用DTO这个类就ok了。
还有个方法,也可以参考哈
org.hibernate.Hibernate
static void initialize(Object proxy)
Force initialization of a proxy or persistent collection.
tzb08
2008-12-02
打赏
举报
回复
采用延迟加载解决吧,该是你缓存里面没UserFace对象了
a1123454
2008-12-02
打赏
举报
回复
[Quote=引用 1 楼 Ousui 的回复:]
实体类代码呢?
这个和数据库没关系,导航不过去是实体类的问题。
确保 Topic 有 UserInfo 属性,
而 UserInfo 有 UserFace 属性。
[/Quote]
可以确保有你说的属性,只不过Topic只是通过UserInfo才有userFace的属性。
所以我猜想可能是这里出问题。
_______--
2008-12-02
打赏
举报
回复
实体类代码呢?
这个和数据库没关系,导航不过去是实体类的问题。
确保 Topic 有 UserInfo 属性,
而 UserInfo 有 UserFace 属性。
Hibernate
3的依赖包
5. **第二级
缓存
**:除了默认的一级
缓存
(Session级别),
Hibernate
还支持二级
缓存
,这可以显著提高性能,特别是对于读多写少的应用。 6. **实体生命周期管理**:
Hibernate
自动管理对象的生命周期,包括加载、持久...
hibernate
4.2-jar包.zip
Hibernate
的
缓存
分为一级
缓存
(Session级别)和二级
缓存
(SessionFactory级别)。一级
缓存
默认开启,自动管理Session内的对象状态;二级
缓存
可选,通过插件如Ehcache实现,提升性能。 总结,"
hibernate
4.2-jar包....
hibernate
4.3.10.Final
3.4 Cache:
Hibernate
的
缓存
机制包括一级
缓存
(Session级别的)和二级
缓存
(SessionFactory级别的),能够有效减少对数据库的访问,提高系统性能。 四、实战应用 4.1 实体类和映射文件:开发者需定义Java实体类,...
hibernate
3.2 jar包
6. **Caching**:为了提高性能,
Hibernate
提供了
缓存
机制。一级
缓存
是每个Session内部的
缓存
,自动管理对象的状态。二级
缓存
则是SessionFactory级别的,可以跨Session共享,需要第三方
缓存
提供商如Ehcache支持。 7....
hibernate
3.3.1的jar包
Hibernate
支持一级
缓存
(Session级)和二级
缓存
(SessionFactory级)。一级
缓存
默认开启,自动管理实体对象的
缓存
;二级
缓存
可选,通常使用第三方
缓存
提供商如EhCache或Infinispan实现。 7. **性能优化** - **...
Java EE
67,538
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章