我的班级电影与导演有@OneToOne关系,与演员有@ManyToMany关系。所有这些类(Movie,Director和Actor)类都以只读模式缓存,集合也是如此。
我使用Hibernate的二级缓存和ehCache。
关系是LAZY,所以我有以下问题:如果一个Movie在不调用getDirector()或getActors()的情况下进入二级缓存,如果在没有Session.merge的情况下调用这些方法,我们将得到一个LazyInitializationException (),这对我来说不是一个选择。
我想如果我可以挂钩事件“put in cache”并调用我的懒惰方法,我的问题就会解决。有这样的事吗?我不愿意编写自定义基础结构代码,因为根据应用程序等打开/关闭二级缓存。
我错过了其他什么吗?
感谢。
答案 0 :(得分:0)
如果缓存关系,那么让他们获取LAZY会获得什么?只需将它们转为EAGER即可解决您的问题。