解決Mybatis查詢方法selectById()主鍵不一致問題
Mybatis-plus的通用mapper為我們封裝了很多方法,我們只需要將interface集成BaseMapper就可以。在BaseMapper中分裝了一個(gè)方法=》selectById()
selectById
這個(gè)方法是根據(jù)主鍵id進(jìn)行查詢記錄的。返回一條記錄。測(cè)試如下,

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

注意這個(gè)表的主鍵就是uid,查詢?cè)囋?/p>

返回結(jié)果不如我們預(yù)期,打印出的SQL很奇怪,并沒有解析正確。猜測(cè)是因?yàn)闊o(wú)法正確解析出主鍵。
改一下,使用注解標(biāo)記一下主鍵

使用@TableId注解標(biāo)記主鍵id為uid,重試下

這次終于正確了
注意:selectById方法默認(rèn)使用的主鍵名是id,數(shù)據(jù)庫(kù)表中如果主鍵id名稱不一樣需要手動(dòng)指定
補(bǔ)充知識(shí):MyBatis-Plus 踩坑 ,getById查詢無(wú)效
使用AutoGenerator(AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個(gè)模塊的代碼)生成代碼后,在Controller中使用Service的getById()進(jìn)行查詢,返回的對(duì)象居然是null
問題出在Entity上,由于我數(shù)據(jù)表的id字段名為id且int類型,自動(dòng)生成的id字段名serialVersionUID且類型為long類型,與數(shù)據(jù)庫(kù)表對(duì)不上號(hào)。
使用getById(id)查詢自然為null
因?yàn)閑ntity生成出來的主鍵沒注意到是不符合數(shù)據(jù)表的
所以解決方法是,把主鍵改成數(shù)據(jù)表對(duì)應(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()主鍵不一致問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Tomcat集群和Session復(fù)制應(yīng)用介紹
本文將詳細(xì)介紹Tomcat集群和Session復(fù)制應(yīng)用,需要了解的朋友可以參考下2012-11-11
Spring整合SpringMVC + Mybatis基礎(chǔ)框架的配置文件詳解
這篇文章主要介紹了Spring整合SpringMVC + Mybatis基礎(chǔ)框架的配置文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
解決2022.3.1版本中?IDEA中?XML文件提示屎黃色背景的方法
這篇文章主要介紹了解決2022.3.1版本中?IDEA中?XML文件屎黃色背景?的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01
springboot中如何將logback切換為log4j2
springboot默認(rèn)使用logback作為日志記錄框架,常見的日志記錄框架有l(wèi)og4j、logback、log4j2,這篇文章我們來學(xué)習(xí)怎樣將logbak替換為log4j2,需要的朋友可以參考下2023-06-06
Java實(shí)現(xiàn)數(shù)字轉(zhuǎn)成英文的方法
這篇文章主要介紹了Java實(shí)現(xiàn)數(shù)字轉(zhuǎn)成英文的方法,涉及java數(shù)組與字符串的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05
javaweb圖書商城設(shè)計(jì)之訂單模塊(5)
這篇文章主要為大家詳細(xì)介紹了javaweb圖書商城設(shè)計(jì)之訂單模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11

