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
float
au lieu d'undouble
au 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.Oracle10gDialect
pour le faire utiliserfloat
pour le type SQLDOUBLE
public 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.