mybatis SqlMapper resultmap配置timestamp类型
2017-01-04 16:08
609 查看
用mybatis访问数据库也用了一些时间,今天和平时一样,增加了一张,表中有一个TIMESTAMP字段,我还是跟往常一样写mapper和定义domain对象,但是写好后,启动时确报如下错:
aused by:org.springframework.core.NestedIOException: Failed to parse mapping resource:'file [D:\ *****************************\mapper\IdGenerator-SqlMapper.xml]';nested exception is org.apache.ibatis.builder.BuilderException: Error parsingMapper XML. Cause:
java.lang.IllegalStateException: No typehandler found forproperty lastUpdateTime
atorg.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:522)
atorg.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:381)
atorg.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:546)
atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:130)
atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$173b3739.CGLIB$sqlSessionFactory$0(<generated>)
atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$173b3739$$FastClassBySpringCGLIB$$6affb2ad.invoke(<generated>)
atorg.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
atorg.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:356)
atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$173b3739.sqlSessionFactory(<generated>)
atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
atjava.lang.reflect.Method.invoke(Method.java:498)
atorg.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
... 48 more
仔细检查了一个sqlmapper.xml文件的配置,确实没有问题,没办法,只能根据下的报错分析了一下mybatis的TypeHandleRegistry,看到typeHandleResitry里注册的timestamp是java.sql.Timestamp,恍然大悟,肯定是我在定义domain对象时引入的timestamp类不同,果然检查确实不对,我引用的是java.security.Timestamp.
aused by:org.springframework.core.NestedIOException: Failed to parse mapping resource:'file [D:\ *****************************\mapper\IdGenerator-SqlMapper.xml]';nested exception is org.apache.ibatis.builder.BuilderException: Error parsingMapper XML. Cause:
java.lang.IllegalStateException: No typehandler found forproperty lastUpdateTime
atorg.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:522)
atorg.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:381)
atorg.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:546)
atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:130)
atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$173b3739.CGLIB$sqlSessionFactory$0(<generated>)
atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$173b3739$$FastClassBySpringCGLIB$$6affb2ad.invoke(<generated>)
atorg.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
atorg.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:356)
atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$173b3739.sqlSessionFactory(<generated>)
atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
atjava.lang.reflect.Method.invoke(Method.java:498)
atorg.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
... 48 more
仔细检查了一个sqlmapper.xml文件的配置,确实没有问题,没办法,只能根据下的报错分析了一下mybatis的TypeHandleRegistry,看到typeHandleResitry里注册的timestamp是java.sql.Timestamp,恍然大悟,肯定是我在定义domain对象时引入的timestamp类不同,果然检查确实不对,我引用的是java.security.Timestamp.
相关文章推荐
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- Mybatis中resultMap输出mapper中的配置
- mybatis执行任意sql,不配置resultMap,返回结果集
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- mybatis的mapper的配置文件的resultMap元素的用法和作用
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- Mybatis 源码学习笔记(八)mapper映射文件配置之select、resultMap
- oracle 时间类型 与java mybatis.xml 文件配置 resultMap 对应时间类型 JsonConfig 转换oracle里的时间类型
- mybatis返回list很智能很简答的,只需要配置resultmap进行类型转换,你dao方法直接写返回值list<对应的object>就行了啊
- Mybatis 配置resultMap 查询全部sql
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- mybatis--mapper映射文件配置之select,resultMap
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- 关于mybatis mapper中的resultMap一些基础知识
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap