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 打赏 收藏 转发到动态 举报
写回复
用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 属性。

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧