Esta é uma limitação conhecida do validador de esquema, verifique HHH-2315 . Então você tem três opções aqui (na verdade quatro, mas acho que desativar a validação não é desejado). Qualquer:
-
Use umfloat
em vez de umdouble
no nível Java - isso pode não ser uma opção.
-
Patchorg.hibernate.mapping.Table.validateColumns(Dialect dialect, Mapping mapping, TableMetadata tableInfo)
para adicionar uma condição especial para este caso em particular - esta não é realmente uma opção leve.
-
Estende oorg.hibernate.dialect.Oracle10gDialect
para fazê-lo usarfloat
para o tipo SQLDOUBLE
public class MyOracle10gDialect extends Oracle10gDialect { public MyOracle10gDialect() { super(); } protected void registerNumericTypeMappings() { super.registerNumericTypeMappings(); registerColumnType( Types.DOUBLE, "float" ); } }
A opção posterior parece segura, mas exigirá alguns testes para ver se não introduz nenhuma regressão. Eu não olhei para o código do driver JDBC da Oracle, então não posso dizer como
float
e double precision
diferem ao nível do condutor.