Questa è una limite noto del validatore dello schema, controlla HHH-2315 . Quindi hai tre opzioni qui (in realtà quattro ma immagino che la disattivazione della convalida non sia desiderata). O:
-
Usa un
float
invece di undouble
a livello di Java, tuttavia questa potrebbe non essere un'opzione. -
Patch
org.hibernate.mapping.Table.validateColumns(Dialect dialect, Mapping mapping, TableMetadata tableInfo)
per aggiungere una condizione speciale per questo caso particolare:questa non è davvero un'opzione leggera. -
Estende
org.hibernate.dialect.Oracle10gDialect
per farlo usarefloat
per il tipo SQLDOUBLE
public class MyOracle10gDialect extends Oracle10gDialect { public MyOracle10gDialect() { super(); } protected void registerNumericTypeMappings() { super.registerNumericTypeMappings(); registerColumnType( Types.DOUBLE, "float" ); } }
L'ultima opzione sembra sicura ma richiederà alcuni test per vedere se non introduce alcuna regressione. Non ho esaminato il codice del driver JDBC di Oracle, quindi non posso dire come float
e double precision
differiscono a livello di conducente.