欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Mybatis查詢方法selectById()主鍵不一致問題

 更新時間:2020年10月23日 14:50:24   作者:leaves_story  
這篇文章主要介紹了解決Mybatis查詢方法selectById()主鍵不一致問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Mybatis-plus的通用mapper為我們封裝了很多方法,我們只需要將interface集成BaseMapper就可以。在BaseMapper中分裝了一個方法=》selectById()

selectById

這個方法是根據(jù)主鍵id進行查詢記錄的。返回一條記錄。測試如下,

最終調(diào)用的是這個方法userDiamondMapper這個接口集成了BaseMapper。

注意這個表的主鍵就是uid,查詢試試

返回結(jié)果不如我們預(yù)期,打印出的SQL很奇怪,并沒有解析正確。猜測是因為無法正確解析出主鍵。

改一下,使用注解標記一下主鍵

使用@TableId注解標記主鍵id為uid,重試下

這次終于正確了

注意:selectById方法默認使用的主鍵名是id,數(shù)據(jù)庫表中如果主鍵id名稱不一樣需要手動指定

補充知識:MyBatis-Plus 踩坑 ,getById查詢無效

使用AutoGenerator(AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個模塊的代碼)生成代碼后,在Controller中使用Service的getById()進行查詢,返回的對象居然是null

問題出在Entity上,由于我數(shù)據(jù)表的id字段名為id且int類型,自動生成的id字段名serialVersionUID且類型為long類型,與數(shù)據(jù)庫表對不上號。

使用getById(id)查詢自然為null

因為entity生成出來的主鍵沒注意到是不符合數(shù)據(jù)表的

所以解決方法是,把主鍵改成數(shù)據(jù)表對應(yīng)的:把主鍵id字段名改回id,且數(shù)據(jù)類型設(shè)置int

@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("board_parent")
public class Parent extends BaseEntity {
 
  //private static final long serialVersionUID = 1L; 
  private int id;
 
  @NotEmpty(message = "父論壇名不能為空!")
  private String name;
 
  @NotNull(message = "管理員ID不能為空!")
  private Integer adminId; 
  public LocalDateTime createdDate; 
  public LocalDateTime updateDate; 
  public Integer state;
}

以上這篇解決Mybatis查詢方法selectById()主鍵不一致問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論