使用通用Mapper需要注意的地方

Bertha 。 2024-04-17 18:18 131阅读 0赞

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 注解引入的包由

  1. org.mybatis.spring.annotation.MapperScan

替换成:

  1. tk.mybatis.spring.annotation.MapperScan

引入的依赖为:

  1. <!-- MyBatis 通用 Mapper -->
  2. <dependency>
  3. <groupId>tk.mybatis</groupId>
  4. <artifactId>mapper-spring-boot-starter</artifactId>
  5. <version>2.0.2</version>
  6. </dependency>

4、mybatis insertUseGeneratedKeys 返回主键为null

解决方案:

建表的时候主键名定义为id,否则不会返回主键 && 主键字段属性id上一定要加上@Id

  1. /**
  2. * JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.
  3. *
  4. * TABLE:使用一个特定的数据库表格来保存主键。
  5. * SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
  6. * IDENTITY:主键由数据库自动生成(主要是自动增长型)
  7. * AUTO:主键由程序控制。
  8. */
  9. @Id
  10. //@GeneratedValue(strategy = GenerationType.IDENTITY)
  11. private Integer id;

发表评论

表情:
评论列表 (有 0 条评论,131人围观)

还没有评论,来说两句吧...

相关阅读