我的类Movie与Director有@OneToOne关系,与Actor有@ManyToMany关系。所有这些类(Movie、Director和Actor)都以只读模式缓存,集合也是如此。
我使用Hibernate的二级缓存和ehCache。
这些关系是惰性的,所以我有以下问题:如果电影在没有调用getDirector()或getActors()的情况下进入二级缓存,那么如果随后在没有调用Session.merge()的情况下调用这些方法,我们将获得一个LazyInitializationException,这对我来说不是一个选择。
我想,如果我能连接到事件“put in cache”并调用我的惰性方法,我的问题就可以解决了。真的有这样的事情吗?我不愿意编写自定义的基础架构代码,因为二级缓存的打开/关闭取决于应用程序等。
我还漏掉了什么吗?
谢谢。
发布于 2011-03-16 20:45:56
如果关系被缓存,那么让它们延迟获取会有什么好处呢?只需把它们变成渴望,你的问题就会得到解决。
https://stackoverflow.com/questions/4179889
复制相似问题