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
floatinvece di undoublea 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.Oracle10gDialectper farlo usarefloatper il tipo SQLDOUBLEpublic 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.