【问题标题】:Hibernate second level cache and associationsHibernate 二级缓存和关联
【发布时间】:2011-05-09 22:57:22
【问题描述】:

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

我使用 Hibernate 的二级缓存和 ehCache。

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

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

我还错过了什么吗?

谢谢。

【问题讨论】:

    标签: hibernate annotations ehcache second-level-cache


    【解决方案1】:

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

    【讨论】: