使用通用Mapper需要注意的地方
1、自己自定义的Mapper.xml中不能使用和通用mapper中同名的接口
2、如果POJO对象名和数据库中实际的表名不同,一定要在POJO对象中使用@Table(name = “t_test_course”),否则使用insertUseGeneratedKeys插入会报表(小写字母开头的POJO对象名)不存在。
3、tk.mapper(通用mapper)出现的问题:Error invoking SqlProvider method (tk.mybatis.mapper.provider.SpecialProvider.dynamicSQL)
java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.SpecialProvider.
解决方案:
将SpringBoot 启动类中的@MapperScan
注解引入的包由
org.mybatis.spring.annotation.MapperScan
替换成:
tk.mybatis.spring.annotation.MapperScan
引入的依赖为:
<!-- MyBatis 通用 Mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
4、mybatis insertUseGeneratedKeys 返回主键为null
解决方案:
建表的时候主键名定义为id,否则不会返回主键 && 主键字段属性id上一定要加上@Id
/**
* JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.
*
* TABLE:使用一个特定的数据库表格来保存主键。
* SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
* IDENTITY:主键由数据库自动生成(主要是自动增长型)
* AUTO:主键由程序控制。
*/
@Id
//@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
还没有评论,来说两句吧...