spring4.2.1, hibernate5 Integriere abstrakten Methodenfehler

8

Ich erkläre spring-framework 4.2.1.BUILD-SNAPSHOT und Hibernate 5.0.0.BETA2 in meinem Projekt, bekomme aber einen AbstractMethodError.

Hier ist der Stack-Trace:

%Vor%

Ich habe ein Paket mit dem Namen org.springframework.orm.hibernate5 gesucht und gefunden. Ich nehme an, dass spring-framework jetzt hibernate5 unterstützen muss. Details Ссылка

Ich ändere die Version von Ruhezustand in andere Version 5.0, aber das Problem bleibt dort, sollte es ein Fehler meines Codes oder Frühjahr oder Winterschlaf sein? Meine Quelle funktioniert, wenn die Version von Hibernate 4.3.10.Final ist. Vielleicht zeigt der Stack-Trace nicht alle Probleme, Sie können meine Projektquelle über ( Ссылка ) anzeigen Kann mir jemand helfen? Danke!

    
martian 02.08.2015, 18:51
quelle

3 Antworten

20

Dies ist ein Problem mit Jadira UserType 4.0.0.GA und früher, in Kombination mit Hibernate 5. Es ist in UserType 5.0.0.GA behoben (siehe Ссылка ).

In meinem Fall habe ich den Benutzernamen 3.0.0.CR3 für JodaTime verwendet. Ich habe nicht versucht, Java 8 (JSR-310) Zeitklassen oder org.jadira.usertype: usertype.extended.

zu verwenden

Das Debugging zeigt, dass die Ausnahme auftritt, wenn versucht wird, einen Integrator vom Typ "org.jadira.usertype.dateandtime.joda.integrator.UserTypeJodaTimeHibernateIntegrator" zu den IntegratorObservern von hibernate's SessionFactoryImpl hinzuzufügen.

Wenn Sie JSR-310 verwenden, empfiehlt Marsian, das Modul hibernate-java8 zu verwenden. Wenn Sie JodaTime und nicht JSR-310 verwenden, hilft das nicht. Eine relativ einfache Problemumgehung besteht darin, einen JPA 2.1 AttributeConverter für jeden von Ihnen verwendeten JodaTime-Typ zu erstellen.

AttributeConverter können auch für JSR-310-Typen verwendet werden. Sie haben den Vorteil, dass sie portabel sind und dass Sie jedes Entitätsfeld nicht mit Anmerkungen versehen müssen, wenn Sie autoApply = true festlegen.

Beispielklassen:

Ссылка

    
drrob 10.08.2015 09:23
quelle
5

Es scheint, dass usertype dafür verantwortlich ist, usertype 4.0.0.GA unterstützt nicht hibernate5, denn hibernate5 hat seine eigenen Java-8-Klassen. Entfernen org.jadira.usertype:usertype.extend und hinzufügen org.hibernate:hibernate-java8 , das Problem ist verschwunden.

    
martian 10.08.2015 06:02
quelle
0

Ich habe das gleiche Problem gelöst, indem ich unten usernype

benutze %Vor%     
SateeshKasaboina 21.10.2017 18:08
quelle