Oracle Database 11g için hazırda bekletme lehçesi?


99

Oracle Database 11g için Hazırda Bekletme lehçesi var mı? Yoksa org.hibernate.dialect.Oracle10gDialecto gemileri Hibernate ile mi kullanmalıyım ?

Yanıtlar:


105

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


2
Maalesef "ORA-01754: bir tablo yalnızca bir sütun LONG" türünde olabilir.
Jan Goyvaerts

Belirli bir ayrılmış işlev INTERVAL ile ilgili bir sorunum var .. örn. "@Formula (" SYSDATE - INTERVAL '1' HOUR * SHOW_LIMIT_HOURS ")". Bazı sorunlara yol açabileceğini bilmiyorum, ancak iyi bir çözüm gibi görünüyor: stackoverflow.com/a/26907699/1488761
Eduardo Fabricio

12

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.


15
Kullanımdan org.hibernate.dialect.OracleDialectkaldırılan zihin ( docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/… ). Oracle 10g lehçesini kullanmalısınız.
Yonatan

7
Oracle 11 artık destekleniyor
MJB

8
@MJB'nin belirttiği gibi Oracle 11 destekleniyor. Eksik kısım: org.hibernate.dialect.Oracle10gDialect sınıf bağlantısı ile destekleniyor (hiernate 4.x için de geçerlidir)
bmichalik

4

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.


2

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.


0

WL 10 kullanıyorsanız aşağıdakileri kullanın:

org.hibernate.dialect.Oracle10gDialect


-1

yalnızca org.hibernate.dialect.OracleDialect Kaldır 10g, 9 vb. kullanın.


Bu, "darioo" tarafından da önerildi, ancak cevabının @ Yonatan tarafından yapılan yorumu okuyun.
Tom Brunberg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.