2017-03-28 4 views
0

Ich benutze Hibernate OGM 5.1.0.Final und Haselnuss-Hibernate5 1.1.3 (sogar mit 1.2 überprüft). Die OGM-kompatible Hibernate-ORM-Abhängigkeit ist 5.1.5, die in POM vorhanden ist.Haselnuss Ausnahme mit Haselnuss-Hibernate5

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) 

Das Problem sah ähnlich dem hier berichtet - https://github.com/hazelcast/hazelcast-hibernate5/issues/13, aber ich kann nicht ORM ein Upgrade auf 5.2, da sie nicht von OGM noch unterstützt wird. Bitte schlagen Sie vor, ob es eine Lösung/Abhilfe für das Problem gibt.

+1

Die Version 1.1.3 und 1.2 von 'hazelcast-hibernate5' hängen von der Hibernate-Version' 5.0.9.Final' ab. Möglicherweise müssen Sie dies in Ihrer Maven-Konfiguration ausschließen und die Hibernate-Abhängigkeit mit Version 5.1.5 selbst erklären. – emre

Antwort

2

Die Version 1.1.3 und 1.2 von hazelcast-hibernate5 sind abhängig von der Hibernate-Version 5.0.9.Final. Möglicherweise müssen Sie dies in Ihrer Maven-Konfiguration ausschließen und die Hibernate-Abhängigkeit mit der Version 5.1.5 selbst erklären.

aktualisiert

Es hazelcast-hibernate5 nicht in der Ruhe 5.1.5 unterstützt leider scheint. So habe ich hazelcast-hibernate5 Code geändert, um Hibernate 5.1.5 zu unterstützen, und eine benutzerdefinierte Version freigegeben, die here gefunden werden kann. Beachten Sie, dass dies auf Maven Central nicht verfügbar ist und es sich nicht um eine offizielle Version des Plugins handelt, sondern nur um eine schnelle Änderung, um Hibernate 5.1.5 für Ihren Anwendungsfall zu unterstützen. Dies bedeutet, dass Sie es zuerst in Ihrem lokalen Maven-Repository installieren müssen (oder binden Sie das JAR direkt in Ihr Projekt ein). Sie können die Änderungen sehen, die ich in this branch vorgenommen habe, um den Code zu untersuchen, oder von der Quelle selbst erstellen.

+0

Danke Emre. Dies ist, was ich getan habe - com.hazelcast Hazelcast-hibernate5 org.hibernate Hibernate-Core Rajesh

+0

Und die Hibernate-Abhängigkeit - - org.hibernate Hibernate-Core 5.1.5.Final noch das gleiche Problem zu schlagen. Ist das etwas anderes als das, was du vorgeschlagen hast? – Rajesh

+0

@Rajesh Das ist genau das, was ich vorgeschlagen habe. Das war das erste, worüber man sich sicher sein konnte. Jetzt, wo wir darüber hinweg sind, werde ich tiefer darauf eingehen. – emre