Hibernate会话应用程序管理

时间:2014-05-05 15:08:35

标签: hibernate session

我在Web java项目中使用Hibernate(4.3.5),在下列情况下你是最好的做法:

我在应用程序会话中有一个对象,登录用户,而且这个用户里面有一些Lazy对象。当我尝试在另一个Hibernate会话(currentSession)中使用这个用户惰性属性时,我得到一个LazyInitializationException。

我是否应该将此用户重新连接到我的过滤器中的CurrentSession(因此我总是可以使用其任何惰性属性),更改我的用户对象加载策略以获取所有属性(仅在此选择中将对象放置在应用会话中),或者什么?

更多信息:我的hibernate会话范围是线程,我在HttpFilter中初始化它和它的事务。

1 个答案:

答案 0 :(得分:0)

是的,将它附加到hibernate会话并调用它上面的方法,以便加载延迟属性。

session.lock() if the transient object is not changed. 
session.update() if the transient object is changed

以上方法会将瞬态对象附加到会话中。