Die Datenbankgruppe hat die Datenbank kürzlich auf Oracle12c aktualisiert. Ich verwende derzeit Hibernate 4.3.9. Wenn ich versuche, um die Anwendung zu implementieren, wirft WebLogic eine Ausnahme:WebLogic-Modul Ausnahme bei Hibernate-Dialekt
weblogic.application.ModuleException: org.hibernate.HibernateException: Kann Dialekt bestimmen, verwenden [name = Oracle, majorversion = 12]; Benutzer muss Resolver registrieren oder 'Hibernate.dialect' explizit festlegen.
HibernateUtil hat
props.setProperty("hibernate.dialect", "utilities.OracleDialectExtended");
Wo OracleDialectExtended Oracle10gDialect, um eine Doppel als Schwimmer registrieren erstreckt. HibernateUtil wird verwendet, um die Eigenschaften festzulegen, anstatt in hibernate.cfg.xml.
Alles, was ich gelesen habe, zeigt an, dass Oracle10gDialect in Ordnung sein sollte. In der Tat, wenn ich die gleiche Einrichtung in einem Batch-Modus (ohne WebLogic) verwenden, kann ich problemlos mit Oracle verbinden und arbeiten.
Weiß jemand, wie man das löst? Oder ist dies ein WebLogic-Problem, das von einem WebLogic-Administrator behoben werden muss?
Danke.
org.hibernate.dialect.OracleDialect ist veraltet und der empfohlene Ersatz ist Oracle8iDialect, der sich im Vererbungsbaum für Oracle10gDialect befindet. Der 12c-Dialekt befindet sich nicht im selben Vererbungsbaum wie OracleDialect, bis Sie zu Dialekt gelangen. Aber OracleDialect und Oracle10gDialect sind Unterklassen von Dialekt. Was ich also vermisse, ist, wenn ich nur die Funktionen verwende, die für eine bestimmte Klasse verfügbar sind, warum kümmert sich WebLogic dann, welche verwendet wird. – BigFish
http://stackoverflow.com/questions/31698651/hibernate-dialect-for-oracle-12c?rq=1 – BigFish
Ich denke, die WebLogic hat nichts mit diesem Problem zu tun, das Problem hängt mit der Konfiguration des Ruhezustandkontextes zusammen. mit Bezug auf den Ruhezustand. Überprüfen Sie die Ausnahme, ihre Ruhezustandsausnahme. Sogar org.hibernate.dialect.OracleDialect ist veraltet, hat es für Sie funktioniert? –