Oracle Database 11g是否有Hibernate方言?或者我应该使用Hibernate附带的org.hibernate.dialect.Oracle10gDialect
?
发布于 2010-12-07 03:05:42
根据supported databases的说法,Oracle11g并未得到官方支持。不过,我相信使用org.hibernate.dialect.OracleDialect
应该不会有任何问题。
发布于 2015-01-15 17:28:21
使用hibernate.hbm2ddl.auto = validate
模式的(不推荐使用的)方言org.hibernate.dialect.Oracledialect
和Oracle11g数据库出现了问题。
使用此方言时,Hibernate无法找到序列(因为getQuerySequencesString()
方法的实现返回以下查询:
"select sequence_name from user_sequences;"
其执行从数据库返回空结果)。
由于getQuerySequencesString()
方法的不同实现,使用方言org.hibernate.dialect.Oracle9iDialect
或更高版本可以解决此问题:
"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;"
如果执行,则返回所有序列。
发布于 2016-06-07 02:47:49
至少在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;
但可能还有其他细微差别。
https://stackoverflow.com/questions/4369944
复制相似问题