1

我正在寻找一种在应用程序级别缓存复杂对象的解决方案。

例如,我想将一些数据集从数据库加载到内存,并使我的应用程序服务在加载到内存的对象之上工作。我考虑过这个是为了提高性能。

但我想知道如何将对象的关系保存在缓存中。

例如,

如果一个类别有很多项目,那么存储关系的最佳方法是什么。我的想法是分别存储类别和项目并将关系存储在其他地方。这是因为我使用休眠并且关联被配置为延迟加载。

请分享您的想法来解决这个问题。

4

2 回答 2

1

您确定需要在应用程序级别实现自定义缓存吗?

Hibernate 有一级和二级缓存,对你来说还不够吗?考虑一下您将使用多少内存来将所有休眠对象存储在您自己的手写缓存中。如果它也可以读写,那么该决定的同谋会给你带来更多的问题而不是好处。当然,这将是车轮的改造。

阅读有关二级缓存如何在休眠中工作的信息。http://www.javalobby.org/java/forums/t48846.html和其他性能调优:http ://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html

对延迟加载的集合的迭代取决于您使用哪种模式来处理会话。很好的例子:https ://community.jboss.org/wiki/OpenSessionInView

于 2012-10-16T07:37:22.840 回答
0

首先,如果您的目标是复杂对象,请不要将它们缓存在内存中。随着对象数量的增加,它将显着降低性能。寻找对象存储库的概念。您可以以任何复杂的形式存储对象,它将满足您的要求

跟随 ir 技术人员结帐。 无数据库

约姆

如果您正在寻找缓存库,请查看 ehcache ,如评论中所建议的那样ehcache

于 2012-10-16T06:33:07.360 回答