Oracle数据库11g是否有Hibernate方言?或者我应该使用Hibernate附带的org.hibernate.dialect.Oracle10gDialect
?用于Oracle Database 11g的Hibernate方言?
回答
使用Oracle 10g方言。此外,最近的JDBC驱动程序还需要Hibernate 3.3.2+(内部类结构已更改 - 对于抽象类,症状会发牢骚)。
Oracle 11g方言与Oracle 10g相同(org.hibernate.dialect.Oracle10gDialect)。来源:http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html#configuration-optional-dialects
根据supported databases,Oracle 11g没有正式支持。虽然,我相信你不应该有任何问题使用org.hibernate.dialect.OracleDialect
。
我们在使用hibernate.hbm2ddl.auto = validate
模式时(已弃用的)方言org.hibernate.dialect.Oracledialect
和Oracle 11g数据库出现问题。
利用这种方言休眠无法找到的序列(因为getQuerySequencesString()
方法的实现,它返回这个查询:
"select sequence_name from user_sequences;"
的量,执行过程返回从数据库空结果)。
使用方言org.hibernate.dialect.Oracle9iDialect
,或更大,解决了问题,由于不同的实现方法getQuerySequencesString()
的:
"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;"
如果被执行则返回所有的序列,来代替。
如果您正在使用WL 10使用以下命令:
org.hibernate.dialect.Oracle10gDialect
至少在EclipseLink的10g和11g的情况有所不同。自11g以来,不建议使用first_rows提示进行分页查询。
参见"Is it possible to disable jpa hints per particular query"。 这样的查询不应该在11g中使用。
SELECT * FROM (
SELECT /*+ FIRST_ROWS */ a.*, ROWNUM rnum FROM (
SELECT * FROM TABLES INCLUDING JOINS, ORDERING, etc.) a
WHERE ROWNUM <= 10)
WHERE rnum > 0;
但也可以有其他的细微差别。
使用仅 org.hibernate.dialect.OracleDialect 删除10g中,9等
- 1. 如何使用Oracle Express 11g的“create database”语句?
- 2. 用于ORACLE 11g的Dropwizard迁移
- 3. Oracle Database 11g使用哪种PKCS#11功能?
- 4. 的Oracle 11g RAC
- 5. XMLTABLE用的Oracle 11g
- 6. Hibernate Criteria使用Oracle 11G的setMaxResults给org.hibernate.exception.SQLGrammarException:ORA-00918:列模糊定义
- 7. 查询适用于Oracle 10g,但不适用于11g?
- 8. Python - Oracle 11g连接
- 9. Oracle XE和Oracle 11g
- 10. Oracle Database Performnace
- 11. Oracle ALTER DATABASE OPEN
- 12. 在Linux上的Oracle DAtabase
- 13. 用于Hibernate的SQLLite方言,表未映射的错误
- 14. 帮助用C#+的Oracle 11g
- 15. java.sql.SQLRecoverableException在使用Hibernate + oracle获取CLOB数据时11g
- 16. Hibernate的方言+ DATEDIFF函数
- 17. 在Oracle 11g中恢复RMAN Oracle 10g备份11g
- 18. Hive/SparkSQL的Hibernate方言?
- 19. Hibernate的大小函数生成的SQL在Oracle 11g中失败
- 20. 版Oracle 11g
- 21. xml in oracle 11g
- 22. Oracle 11G和Toad
- 23. TransactionTimeout与Oracle 11g
- 24. 在Oracle 11g中
- 25. DB Oracle 11g BenchMarking
- 26. Oracle 11g,约ROUND
- 27. Data Guard Oracle 11g
- 28. ODP.net和Oracle 11g
- 29. PLSQL与Oracle 11g
- 30. JDBC瘦Oracle 11g
记住,`org.hibernate.dialect.OracleDialect`被弃用(http://docs.jboss.org/hibernate/核心/ 3.6 /的javadoc /组织/休眠/方言/ OracleDialect.html)。您应该使用Oracle 10g方言。 – Yonatan 2012-01-03 12:57:30
现在支持Oracle 11 – MJB 2012-07-25 03:11:21
正如@MJB指出Oracle 11受支持。缺少的部分是:它支持org.hibernate.dialect.Oracle10gDialect类[链接](http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html #configuration-optional-dialects)(也适用于hiernate 4.x) – bmichalik 2013-12-17 12:53:54