如何在应用程序级别缓存复杂的java对象

如何在应用程序级别缓存复杂的java对象,java,hibernate,caching,Java,Hibernate,Caching,我正在寻找一种在应用程序级别用java缓存复杂对象的解决方案 例如,我想将一些数据集从数据库加载到内存中,并使我的应用程序服务在加载到内存中的对象之上工作。我考虑这一点是为了提高性能 但我想知道如何将对象的关系保存在缓存中 就是比如说, 如果一个类别有许多项,那么存储关系的最佳方法是什么。 我的想法是分别存储类别和项目,并将关系存储在其他地方。这是因为我使用hibernate,并且将关联配置为延迟加载 请分享您解决此问题的想法。首先,如果您针对的是复杂对象,请不要将其缓存在内存中。随着对象数量的

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

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

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

就是比如说,

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


请分享您解决此问题的想法。

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

签出以下红外技术。

如果您正在寻找缓存库,请按照注释中的建议查看ehcache
这里

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

签出以下红外技术。

如果您正在寻找缓存库,请按照注释中的建议查看ehcache
此处

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

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

了解二级缓存在hibernate中的工作原理。和其他性能调整:


延迟加载集合上的迭代取决于您使用哪种模式来处理sesions。很好的示例:

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

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

了解二级缓存在hibernate中的工作原理。和其他性能调整:


延迟加载集合上的迭代取决于您使用哪种模式来处理sesions。很好的例子:

如果您需要缓存库,您可以看看我面临的问题是,假设我需要获取属于某个类别的项目集。由于hibernate被配置为延迟加载,实际上一个代理位于集合或列表的顶部。稍后从缓存中迭代Category对象中的项目集时,hibernate是否会出现问题。如果您需要缓存库,可以查看我面临的问题是,假设我需要获取属于某个类别的项目集。由于hibernate被配置为延迟加载,实际上一个代理位于集合或列表的顶部。稍后从缓存中迭代Category对象中的项集时,hibernate是否会出现问题。目前,您的答案不是很好。请尝试扩展它,并解释这个库如何准确地解决OPs问题。从目前的情况来看,你的答案不是很好。请尝试展开它,并解释此库如何解决OPs问题。