我在Web java项目中使用Hibernate(4.3.5),在下列情况下你是最好的做法:
我在应用程序会话中有一个对象,登录用户,而且这个用户里面有一些Lazy对象。当我尝试在另一个Hibernate会话(currentSession)中使用这个用户惰性属性时,我得到一个LazyInitializationException。
我是否应该将此用户重新连接到我的过滤器中的CurrentSession(因此我总是可以使用其任何惰性属性),更改我的用户对象加载策略以获取所有属性(仅在此选择中将对象放置在应用会话中),或者什么?
更多信息:我的hibernate会话范围是线程,我在HttpFilter中初始化它和它的事务。
答案 0 :(得分:0)
是的,将它附加到hibernate会话并调用它上面的方法,以便加载延迟属性。
session.lock() if the transient object is not changed.
session.update() if the transient object is changed
以上方法会将瞬态对象附加到会话中。