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

标签 java hibernate caching

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

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

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

例如,

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

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

最佳答案

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

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

了解二级缓存在 hibernate 中如何工作。 http://www.javalobby.org/java/forums/t48846.html和其他性能调整:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html

延迟加载集合的迭代取决于您用于处理 session 的模式。好例子:https://community.jboss.org/wiki/OpenSessionInView

关于java - 如何在应用程序级别缓存复杂的java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12908634/

相关文章:

java - 如何计算非常大的 BigInteger 数字的 GCD 而不会出现 stackoverflow 异常?

java - Spark-Java-foreachPartition

java - Maven:部署了 javax.servlet 规范

java - JPA : how to map SQL Server uniqueidentifier type

java - Hibernate 语法错误 - 意外标记 : ON

.net - EntLib 缓存应用程序 block 的替代方案?

php - 如何在 Laravel 中缓存 BLOB 类型

asp.net - 简单.NET分布式缓存解决方案的建议

java - Netty - Xml 字符串的分隔符

nhibernate - Hibernate 查询语言中的 IFNULL 等价物?