No Dialect mapping for JDBC type: 7
Marcos Sousa | October 30, 2007Esta é uma exception que pode ocorrer algum dia com você quando estiver usando Hibernate e PostgreSQL. Basicamente ela ocorre quando você tem um a entidade que tem uma propriedade mapeada do tipo float, e você tenta criar uma consulta HQL usando as built-in-functions (sum, avg, count, etc), fazendo left outer joins, ou até mesmo com consultas simples.
org.hibernate.MappingException: No Dialect mapping for JDBC type: 7
Há duas maneiras de resolver o problema: a primeira é alterando o tipo de dados de FLOAT para DOUBLE ou criando um dialeto personalizado:
public class PostgreSQLDialect extends org.hibernate.dialect.PostgreSQLDialect {
public PostgreSQLDialect() {
super();
registerColumnType(Types.REAL, “number($p,$s)” );
registerHibernateType(Types.REAL, “float”);
}
}
O SQL type 7, corresponde a dados do Tipo real, então precisamos registrar o tipo de dados da coluna e relacionar este tipo de dados a um tipo de dados do hibernate.





