Gibt es einen Hibernate-Dialekt für Oracle Database 11g? Oder sollte ich die org.hibernate.dialect.Oracle10gDialect
verwenden, die mit Hibernate geliefert wird?Hibernate Dialekt für Oracle Database 11g?
Antwort
Verwenden Sie den Oracle 10g-Dialekt. Auch Hibernate 3.3.2+ wird für die letzten JDBC-Treiber benötigt (die interne Klassenstruktur wurde geändert - Symptome werden über eine abstrakte Klasse jammern).
Dialekt von Oracle 11g ist dasselbe wie Oracle 10g (org.hibernate.dialect.Oracle10gDialect). Quelle: http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html#configuration-optional-dialects
Gemäß supported databases wird Oracle 11g nicht offiziell unterstützt. Obwohl ich glaube, dass Sie keine Probleme mit org.hibernate.dialect.OracleDialect
haben sollten.
Kenntnis, dass sich 'org.hibernate.dialect.OracleDialect' veraltet (http://docs.jboss.org/hibernate/ core/3.6/javadocs/org/hibernate/dialekt/OracleDialect.html). Sie sollten den Oracle 10g-Dialekt verwenden. – Yonatan
Oracle 11 wird jetzt unterstützt – MJB
Wie @MJB wies darauf hin, Oracle 11 wird unterstützt. Der fehlende Teil ist: Es wird unterstützt mit org.hibernate.dialect.Oracle10gDialect Klasse [link] (http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html # configuration-optional-dialects) (gilt auch für hiernate 4.x) – bmichalik
Wir hatten ein Problem mit dem (veralteten) Dialekt org.hibernate.dialect.Oracledialect
und Oracle 11g Datenbank mit hibernate.hbm2ddl.auto = validate
Modus.
Mit diesem Dialekt Hibernate konnte die Sequenzen gefunden (weil die Umsetzung des getQuerySequencesString()
Methode, die diese Abfrage zurückgibt:
"select sequence_name from user_sequences;"
, für die die Ausführung ein leeres Ergebnis aus der Datenbank zurückgibt).
Verwenden des Dialekts org.hibernate.dialect.Oracle9iDialect
oder größer ist, löst das Problem, aufgrund einer unterschiedlichen Implementierung getQuerySequencesString()
Methode:
"select sequence_name from all_sequences union select synonym_name from all_synonyms us, all_sequences asq where asq.sequence_name = us.table_name and asq.sequence_owner = us.table_owner;"
, die die Sequenzen, wenn alle ausgeführt zurückkehrt, statt.
Wenn Sie mit 10 WL verwenden Sie die folgenden Schritte aus:
org.hibernate.dialect.Oracle10gDialect
zumindest im Fall von Eclipse 10g und 11g unterscheiden. Seit 11g wird nicht empfohlen, den first_rows-Hinweis für Paginierungsabfragen zu verwenden.
Siehe "Is it possible to disable jpa hints per particular query". Eine solche Abfrage sollte nicht in 11g verwendet werden.
SELECT * FROM (
SELECT /*+ FIRST_ROWS */ a.*, ROWNUM rnum FROM (
SELECT * FROM TABLES INCLUDING JOINS, ORDERING, etc.) a
WHERE ROWNUM <= 10)
WHERE rnum > 0;
Aber es kann andere Nuancen geben.
Verwendung nur org.hibernate.dialect.OracleDialect Remove 10g, 9 usw.
Dies bietet keine Antwort auf die Frage. Sobald Sie genug [Reputation] (https://stackoverflow.com/help/whats-reputation) haben, können Sie [jeden Beitrag kommentieren] (https://stackoverflow.com/help/privileges/comment); Stattdessen [geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern] (https://meta.stackexchange.com/questions/214173/why-doe-i-need-50-reputation-to-comment-what-can- i-do-stattdessen). - [Aus Bewertung] (/ review/low-quality-posts/18711257) – diceler
Dies wurde auch von "darioo" vorgeschlagen, aber lies den Kommentar zu seiner Antwort von @Yonatan. –
- 1. Netzzugang durch Zugriffskontrollliste verweigert (ACL) in Oracle Database 11g
- 2. Dialekt in Hibernate
- 3. Wie @ @ postgres Hibernate Dialekt hinzufügen?
- 4. Ubuntu 16.04 - Oracle 11g Startproblem
- 5. Oracle 11g und Datenbankverbindung
- 6. Dialekt für SQL2005
- 7. Standardkennwörter von Oracle 11g?
- 8. Hibernate 4 ignoriert MySQL-Dialekt
- 9. Derby-Dialekt für überwintern
- 10. Replikationsratgeber Oracle 11g
- 11. Oracle 11g - sys_refucursor
- 12. Oracle 11g Sys Abfrage
- 13. Data Guard Oracle 11g
- 14. Oracle 11g Kalte Wiederherstellung?
- 15. JDBC Thin Oracle 11g
- 16. Frage auswählen Oracle 11g
- 17. Unterstützte JDBC, JDK-Versionen für Oracle 11g
- 18. Oracle Entwickler VM mit Oracle 11g
- 19. Einzigartige Reihen in Oracle 11g
- 20. Verbinden Sie Codeigniter mit Oracle 11g
- 21. Standardberechtigungen auf Oracle-Datenbank 11g
- 22. Oracle Database 12c Installationsproblem
- 23. PL/SQL Oracle 11g Looping
- 24. analysieren Log-Tabelle - Oracle 11g
- 25. Set Tabelle Zeichensatz/Kollation mit Hibernate Dialekt?
- 26. Oracle Hibernate Sequenzgenerator Problem
- 27. Fehler ORA-12638 in Oracle Datenbank 11g
- 28. Oracle SOA Suite 11g Installationsprobleme
- 29. Access-Daten von Oracle 11g
- 30. Erste Fehler in Oracle 11g
Leider hilft das nicht für "ORA-01754: Eine Tabelle darf nur eine Spalte vom Typ LONG enthalten". –
Ich habe ein Problem mit der spezifischen reservierten Funktion INTERVAL .. z. B. "@Formula (" SYSDATE - INTERVAL '1' HOUR * SHOW_LIMIT_HOURS ")". Ich weiß nicht, dass es ein Problem verursachen könnte, aber es scheint eine gute Lösung zu sein: http: // stackoverflow.com/a/26907699/1488761 –