我正在使用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尚不支持。请建议是否有针对该问题的解决方案/解决方法。
答案 0 :(得分:2)
1.1.3
的版本1.2
和hazelcast-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中所做的更改,以检查代码,或者自己从源代码构建。