No Dialect mapping for JDBC type

/ 0条评论 / 0 个点赞 / 868人阅读

今天写原生态SQL调用Hibernate查询数据库报以下异常:


org.hibernate.MappingException: No Dialect mapping for JDBC type: -1 。


 原因:肯定是方言(Hibernate Dialect)的问题,Hibernate映射时发现实体类的类型与数据库中的类型对应不上。


 例如:你用了MYSQL,并定义一个字段值类型为decimal,此时通过hibernate原生态查询就会报异常:


No Dialect mapping for JDBCtype: 3.


  如果你用了SQLSERVER,并定义字段类型为:max,将会报异常:


org.hibernate.MappingException: No Dialect mapping for JDBC type: -1 。


 解决:自定义方言,写一个JAVA类,继承所对应的数据库方言,找你要重写的字段。

No Dialect mapping for JDBC type: 0

有可能是在查询的属性中设置了null  as cessa,这种写法在Hibernate作为数据库连接层的时候,mysql数据库是会报错的