1

我的班级 Movie 与 Director 具有 @OneToOne 关系,与 Actor 具有 @ManyToMany 关系。所有这些类(电影、导演和演员)类都以只读模式缓存,集合也是如此。

我将 Hibernate 的二级缓存与 ehCache 一起使用。

这些关系是 LAZY 的,所以我有以下问题:如果电影在没有调用 getDirector() 或 getActors() 的情况下进入二级缓存,如果随后在没有 Session.merge() 的情况下调用这些方法,我们将得到一个 LazyInitializationException,这不是我的选择。

我想如果我可以挂钩事件“放入缓存”并调用我的惰性方法,我的问题就会得到解决。有这样的事吗?我不愿意编写自定义基础架构代码,因为二级缓存会根据应用程序等打开/关闭。

我还缺少其他东西吗?

谢谢。

4

1 回答 1

0

如果关系被缓存,那么通过 LAZY 获取它们可以获得什么?只需将它们转为 EAGER,您的问题就会得到解决。

于 2011-03-16T12:45:55.503 回答