在哪里,你已经得到了Grails中的org.hibernate.LazyInitializationException最常见的地方,究竟是什么原因?你是怎么解决的呢?

我觉得这一个例外,出现了不少新手,所以如果你愿意提供更多的例子,这将是巨大的。

有帮助吗?

解决方案

让我们的示例:

class Book {
  String title
  Author author
}

class Author {
  ...
}

Book book = Book.get(1)

正如我们所知,默认获取模式是在域类懒惰。考虑到上面的例子,假设我们拿到书的对象,然后Book对象就会自动连接到即一级缓存Hibernate的Session对象。和域对象会从会话对象分开,然后我们尝试获取book.author,在这一刻后,引发延迟初始化例外。

因此,解决方案是,以要么取模式作为渴望或附上书对象使用下面给出的代码冬眠会话:

if(!book.isAttached()){
     book.attach()
}

上面所给出的描述是该方案中的一个。可能有很多。我要求别人取悦份额。

其他提示

我有一个,因为我被检查,如果用户有权限做JSecurity /四郎一些行动,这不是事务性的服务。最终我不得不将服务设置为事务摆脱异常。

这里

更多信息: HTTP ://www.nabble.com/JSecurity-LazyInitializationException-in-default-DbRealm.isPermitted%28%29-td24939803.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top