Oracle Database 11g için Hazırda Bekletme lehçesi var mı? Yoksa org.hibernate.dialect.Oracle10gDialect
o gemileri Hibernate ile mi kullanmalıyım ?
Oracle Database 11g için Hazırda Bekletme lehçesi var mı? Yoksa org.hibernate.dialect.Oracle10gDialect
o gemileri Hibernate ile mi kullanmalıyım ?
Yanıtlar:
Oracle 10g lehçesini kullanın. Ayrıca, son JDBC sürücüleri için Hibernate 3.3.2+ gereklidir (dahili sınıf yapısı değişti - belirtiler soyut bir sınıf hakkında sızlanacak).
Oracle 11g ağzı Oracle 10g ( org.hibernate.dialect.Oracle10gDialect ) ile aynıdır . Kaynak: http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html#configuration-optional-dialects
Desteklenen veritabanlarına göre Oracle 11g resmi olarak desteklenmemektedir. Yine de, kullanırken herhangi bir sorun yaşamamanız gerektiğine inanıyorum org.hibernate.dialect.OracleDialect
.
org.hibernate.dialect.OracleDialect
kaldırılan zihin ( docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/… ). Oracle 10g lehçesini kullanmalısınız.
Modu org.hibernate.dialect.Oracledialect
kullanan (kullanımdan kaldırılan) diyalekt ve Oracle 11g veritabanıyla ilgili bir sorun yaşadık hibernate.hbm2ddl.auto = validate
.
Bu lehçe ile Hibernate dizileri bulamadı (çünkü getQuerySequencesString()
bu sorguyu döndüren yöntemin uygulanması :
"select sequence_name from user_sequences;"
bunun için yürütme veritabanından boş bir sonuç döndürür).
org.hibernate.dialect.Oracle9iDialect
Farklı bir getQuerySequencesString()
yöntem uygulaması nedeniyle lehçeyi veya daha fazlasını kullanmak sorunu çözer :
"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;"
bunun yerine çalıştırılırsa tüm dizileri döndürür.
En azından EclipseLink durumunda 10g ve 11g farklıdır. 11g'den beri, sayfalandırma sorguları için first_rows ipucu kullanılması önerilmez.
Bkz. "Belirli sorgu başına jpa ipuçlarını devre dışı bırakmak mümkün mü" . Böyle bir sorgu 11g'de kullanılmamalıdır.
SELECT * FROM (
SELECT /*+ FIRST_ROWS */ a.*, ROWNUM rnum FROM (
SELECT * FROM TABLES INCLUDING JOINS, ORDERING, etc.) a
WHERE ROWNUM <= 10 )
WHERE rnum > 0;
Ancak başka nüanslar olabilir.
yalnızca org.hibernate.dialect.OracleDialect Kaldır 10g, 9 vb. kullanın.