【问题标题】:Hazelcast 3.4 as second level cache providerHazelcast 3.4 作为二级缓存提供者
【发布时间】:2015-04-11 08:56:13
【问题描述】:

我想为 hibernate 的二级缓存配置我的 hazelcast 作为二级缓存提供者目前我正在使用 ehcache 作为缓存提供者

我想替换它,因为 hazelcast 是分布式缓存。 谁能告诉我配置这个的步骤。

【问题讨论】:

    标签: hibernate caching ehcache hazelcast provider


    【解决方案1】:

    你得看https://github.com/hazelcast/hazelcast-code-samples/tree/master/hazelcast-integration/hibernate-2ndlevel-cache

    这是一个很好的例子,说明如何将休眠二级缓存与 hazelcast 一起使用。此外,如果您遇到其他问题,您可以询问 https://groups.google.com/forum/#!forum/hazelcast 或在 stackoverflow 中。

    hazelcast 还提供了很好的文档:http://docs.hazelcast.org/docs/3.4/manual/html-single/hazelcast-documentation.html#hibernate-second-level-cache

    【讨论】:

    • 我已经完成了所有配置。但我想在我的应用程序中测试它。我该如何测试它。例如:- 我有一个实体 Country @Cache(usage=CacheConcurrencyStrategy.READ_ONLY) 类国家{}
    • 您想为您的应用程序编写单元测试吗?例如。缓存是否工作。
    • 是的,一种单元测试。这是另一个问题。当我将 hazelcast 版本从 3.1.7 升级到 3.4 时,出现异常 java.lang.ClassCastException: com.hazelcast.util.QueryResultSet cannot be cast to java.util.List while cast Collection集合到 List) 集合。这里的集合是 categoriesCache.values() 其中 categoriesCache 是我的 IMap categoriesCache;你知道 hazelcast 从 3.1.7 升级到 3.4 后发生这种情况的原因吗
    • 我猜我们在 3.3 中更改了内部响应对象。新的 QueryResultSet 在(反)序列化方面更有效,但正如名称所述,它现在是一个 Set 而不是 List 了。因此,要么更改您的代码以使用集合或集合。
    • 非常感谢@noctarius。我正在使用 Collection.sort() 方法。我正在将 QueryResultSet 转换为 List,因为它需要 List 进行排序。所以我必须从 QueryResultSet 制作一个 List 并且必须使用它在 Collection.sort() 中。对吗?
    猜你喜欢
    • 2016-04-18
    • 1970-01-01
    • 2016-03-24
    • 2014-09-11
    • 2019-08-24
    • 2017-03-16
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多