欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

No Dialect mapping for JDBC type :0

程序员文章站 2022-06-13 12:17:58
...

data service 架构:spring Roo + hibernate+mysql

在调用stored procedure的时候,出现:No Dialect mapping for JDBC type:0
通过反编译java.sql.Types.java得知type:0 对应于NULL
 No Dialect mapping for JDBC type :0
            
    
    博客分类: 踩坑长经验 No Dialect mapping for JDBC type :0 

 

原因是java中的java.sql.Types中定义了NULL的解析,但是hibernate 的dialect不能够支持,在使用spring roo 配置项目的时候,使用的,使用的jpa为hibernate, 那么默认的persistent.xml中有一行为:
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
这个是用来定义hibernate的dialect,我们可以重新实现这个dialect然后重新给这个value赋值:
No Dialect mapping for JDBC type :0
            
    
    博客分类: 踩坑长经验 No Dialect mapping for JDBC type :0 
 
然后将persistent.xml中的这个属性,改成 MysqlDialect class所在的位置就ok了
这样就能够使 hibernate支持NULL type的类型值了。
 
除此之外,我们还需要进一步做修改,在定义sessionFactory的applicationContext.xml中,也需要将Dialect定义为指向我们新定义的类,才能够完全解决这个问题。