Tag: 二级缓存

在数据库模式中hibernate二级缓存和ON DELETE CASCADE

我们的Java应用程序有大约100个映射到数据库(SQL Server或MySQL)的类。 我们使用Hibernate作为我们的ORM(使用XML映射文件)。 我们在数据库模式中指定FOREIGN KEY约束。 我们的大多数FOREIGN KEY约束也指定了ON DELETE CASCADE 。 我们最近开始启用Hibernate二级缓存(针对流行实体和集合)以缓解一些性能问题。 自从我们启用了二级缓存以来,性能得到了提升。 但是我们也开始遇到ObjectNotFoundExceptions。 似乎发生了ObjectNotFoundExceptions,因为数据库正在删除Hibernate 下面的表行。 例如,当我们删除具有Hibernate的Parent时,数据库模式将ON DELETE CASCADE到任何子实体。 这显然没有Hibernates知识,所以它没有机会更新二级缓存(并删除任何已删除的子实体)。 我们相信这个问题的解决方案是从我们的数据库模式中删除ON DELETE CASCADE (但保留FOREIGN KEY )。 相反,我们需要配置Hibernate以使用普通删除SQL删除Child依赖项,这也将使Hibernate更新二级缓存。 一些有限的测试表明这种方法似乎有效。 我想得到一些社区反馈。 我们的问题是否有其他(更好的?)解决方案? 其他人如何处理这种情况? 通常,在使用Hibernate的数据库模式中使用ON DELETE CASCADE时应该考虑哪些权衡? 谢谢。

JPA2.0支持自定义用户类型和二级缓存

我正在尝试决定是否将Hibernate全部转移到使用JPA2.0 ,从而提供便携式服务器。 1. JPA2.0支持自定义用户类型? 2.我正在将Terracotta作为Hibernate的二级缓存实现,其主要考虑集群function。 我想,但我实际上并不知道, JPA2.0还定义了二级缓存提供程序的规范。 如果我是对的, Terracotta实施它吗? (如果有人能指出我开始使用Terracotta和JPA我会很感激)。 提前致谢, 以太

什么是hibernate中的二级缓存?

什么是hibernate中的二级缓存?

Hibernate缓存策略

如何确定要使用哪个CacheConcurrencyStrategy ? NonstrictReadWriteCache , ReadOnlyCache , ReadWriteCache , TransactionalCache 。 我阅读了https://www.hibernate.org/hib_docs/v3/api/org/hibernate/cache/CacheConcurrencyStrategy.html ,但没有详细解释。