我正在寻找一种在应用程序级别缓存java中复杂对象的解决方案。
例如,我想将一些数据集从数据库加载到内存,并使我的应用程序服务在加载到内存中的对象之上工作。我考虑过这个是为了提高性能。
但我想知道如何保持对象在缓存中的关系。
例如,
如果某个类别包含多个项目,那么存储该关系的最佳方法是什么。 我的想法是分别存储类别和项目,并将关系存储在其他地方。这是因为我使用了hibernate并且关联被配置为延迟加载。
请分享您的想法以解决此问题。
答案 0 :(得分:1)
您确定需要在应用程序级别实现自定义缓存吗?
Hibernate有一级和二级缓存,对你来说还不够吗?考虑一下将用于将所有hibernate对象存储在自己的手写缓存中的内存量。如果它也会读写,那么该决定的共谋会给你带来更多问题而不是好处。当然,这将是车轮改造。
了解二级缓存如何在hibernate中工作。 http://www.javalobby.org/java/forums/t48846.html和其他性能调整:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html
对延迟加载的collecitons的迭代取决于您使用哪种模式来处理sesions。很好的例子:https://community.jboss.org/wiki/OpenSessionInView
答案 1 :(得分:0)