与hazelcast-hibernate5的Hazelcast异常

时间:2017-03-28 19:19:59

标签: hazelcast hibernate-ogm

我正在使用Hibernate OGM 5.1.0.Final和hazelcast-hibernate5 1.1.3(甚至用1.2检查)。 OGM兼容的hibernate ORM依赖是5.1.5,它存在于POM中。

Caused by: java.lang.IncompatibleClassChangeError: Expected static method org.hibernate.cache.internal.DefaultCacheKeysFactory.createEntityKey(Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryIm
    at com.hazelcast.hibernate.region.EntityRegionAccessStrategyAdapter.generateCacheKey(EntityRegionAccessStrategyAdapter.java:66)
    at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:198)
    at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:125)
    at org.hibernate.ogm.loader.impl.OgmLoader.initializeEntitiesAndCollections(OgmLoader.java:807)
    at org.hibernate.ogm.loader.impl.OgmLoader.doQuery(OgmLoader.java:393)
    at org.hibernate.ogm.loader.impl.OgmLoader.doQueryAndInitializeNonLazyCollections(OgmLoader.java:283)
    at org.hibernate.ogm.loader.impl.OgmLoader.loadEntity(OgmLoader.java:201)
    at org.hibernate.ogm.loader.impl.OgmLoader.loadEntitiesFromTuples(OgmLoader.java:220)
    at org.hibernate.ogm.loader.entity.impl.DynamicBatchingEntityLoaderBuilder$DynamicBatchingEntityLoader.loadEntitiesFromTuples(DynamicBatchingEntityLoaderBuilder.java:127)
    at org.hibernate.ogm.query.impl.OgmQueryLoader.listOfEntities(OgmQueryLoader.java:92)
    at org.hibernate.ogm.query.impl.OgmQueryLoader.list(OgmQueryLoader.java:78)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:501)
    at org.hibernate.ogm.query.impl.OgmQueryTranslator.list(OgmQueryTranslator.java:129)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1339)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:87)
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:606)
    at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:483)
    at com.olp.jpa.common.AbstractRepositoryImpl.findAll(AbstractRepositoryImpl.java:137)

该问题与此处报告的问题类似 - https://github.com/hazelcast/hazelcast-hibernate5/issues/13,但我无法将ORM升级到5.2,因为OGM尚不支持。请建议是否有针对该问题的解决方案/解决方法。

1 个答案:

答案 0 :(得分:2)

1.1.3的版本1.2hazelcast-hibernate5取决于Hibernate版本5.0.9.Final。您可能需要在Maven配置中排除它并使用版本5.1.5声明Hibernate依赖关系。

更新

似乎hazelcast-hibernate5不支持Hibernate 5.1.5。所以我修改了hazelcast-hibernate5代码来支持Hibernate 5.1.5并发布了一个可以找到的自定义版本here。请注意,这在Maven中心不可用,并且它不是该插件的正式版本,只是为您的用例支持Hibernate 5.1.5的快速更改。这意味着您必须首先将其安装到本地Maven存储库(或将JAR直接嵌入到您的项目中)。您可以看到我在this branch中所做的更改,以检查代码,或者自己从源代码构建。