Ceci est une limitation connue du validateur de schéma, cochez HHH-2315 . Vous avez donc trois options ici (en fait quatre mais je suppose que la désactivation de la validation n'est pas souhaitée). Soit :
-
Utiliser un
floatau lieu d'undoubleau niveau Java - cela pourrait cependant ne pas être une option. -
Patch
org.hibernate.mapping.Table.validateColumns(Dialect dialect, Mapping mapping, TableMetadata tableInfo)pour ajouter une condition spéciale pour ce cas particulier - ce n'est pas vraiment une option légère. -
Étend le
org.hibernate.dialect.Oracle10gDialectpour le faire utiliserfloatpour le type SQLDOUBLEpublic class MyOracle10gDialect extends Oracle10gDialect { public MyOracle10gDialect() { super(); } protected void registerNumericTypeMappings() { super.registerNumericTypeMappings(); registerColumnType( Types.DOUBLE, "float" ); } }
La dernière option semble sûre mais nécessitera des tests pour voir si elle n'introduit aucune régression. Je n'ai pas regardé le code du pilote JDBC d'Oracle, donc je ne peux pas dire comment float et double precision diffèrent au niveau du conducteur.