Was sind die besten workarounds für bekannte Probleme mit Hibernate schema-Validierung von Gleitkomma-Spalten bei Verwendung von Oracle 10g?

Ich habe mehrere Java-Klassen mit Doppel-Felder, die ich bin persistierenden über Hibernate. Ich habe zum Beispiel

@Entity
public class Node ...

  private double value;

Wenn Hibernate die org.hibernate.dialect.Oracle10gDialect schafft den DDL-Code für die Knoten-Tabelle, Sie zeigt die Wert-Feld zu einem "double precision" - Typ.

create table MDB.Node (... value double precision not null, ...

Scheint es, dass in Oracle, "double precision" ist ein alias für "float". Also, wenn ich versuche, so überprüfen Sie die Datenbank-schema mit Hilfe der org.hibernate.cfg.AnnotationConfiguration.validateSchema() Methode, Oracle erscheint, zu beschreiben, der Wert-Spalte als "float". Dies bewirkt, dass Hibernate werfen die folgende Ausnahme

org.hibernate.HibernateException: Wrong column type in DBO.ACL_RULE for column value. Found: float, expected: double precision

Ein sehr ähnliches problem aufgeführt ist, im Ruhezustand ist der JIRA-Datenbank als HHH-1961. Ich möchte vermeiden, etwas zu tun, brechen, MySql, Postgres und Sql-Server-Unterstützung, so dass die Verlängerung der Oracle10gDialect scheint die vielversprechendste workarounds erwähnt in HHH-1961. Es kann aber auch ein Dialekt ist etwas, was ich noch nie getan habe, und ich fürchte, es kann einige böse Fallstricke. Was ist die beste Problemumgehung für dieses problem, die nicht brechen wird unsere die Kompatibilität mit MySql, Postgres und Sql Server?

InformationsquelleAutor Jason Novak | 2010-04-12
Schreibe einen Kommentar