最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis-plus 返回部分字段的解決方式

 更新時(shí)間:2020年10月01日 11:56:58   作者:別問問就是報(bào)錯(cuò)  
這篇文章主要介紹了mybatis-plus 返回部分字段的解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

mybatis-plus的代碼生成器會在實(shí)體類中生成數(shù)據(jù)庫所有字段,我們?nèi)ビ胢apper接口查詢時(shí),會返回?cái)?shù)據(jù)庫所有的字段。

但有些字段不是我們想要的,比如:deleted,所以我們可以在不需要的字段上面加@JsonIgnore注解,返回給前端的時(shí)候會自動把這個(gè)字段去除。

補(bǔ)充知識:Mybatis-Plus只查詢特定字段與創(chuàng)建子類方法

Mybatis-Plus查詢特定字段例子:

Seal seal = sealService.selectOne(

new EntityWrapper<Seal>().setSqlSelect("sealName").eq("sealId",auditProcess.getSealId()));

其中這里的seal是一個(gè)自定義類。"sealName"是數(shù)據(jù)庫表seal的一個(gè)字段,這句查詢只查到id為 auditProcess.getSealId() 的seal的名稱。其余字段為null

創(chuàng)建子類方法。

一般需要聯(lián)表的情況,又不想寫sql語句,可以試下這種方法(至于效率,我也沒有測試過)

上個(gè)例子

Manager類

/**
 * <p>
 * 
 * </p>
 *
 * @author onee123
 * @since 2019-03-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("_manager")
public class Manager extends Model<Manager> {
 
  private static final long serialVersionUID = 1L;
 
  /**
   * 管理員id
   */
  @TableId(value = "manager_id",type = IdType.UUID)
  private String managerId;
  /**
   * 賬號
   */
  @TableField("manager_phone")
  private String managerPhone;
  /**
   * 密碼
   */
  @TableField("manager_pass")
  private String managerPass;
  /**
   * 姓名
   */
  @TableField("manager_name")
  private String managerName;
  /**
   * 郵箱
   */
  @TableField("manager_email")
  private String managerEmail;
  /**
   * 狀態(tài)(0:1-刪除:啟動)
   */
  @TableField("manager_status")
  private Integer managerStatus;
  /**
   * 權(quán)限id
   */
  @TableField("role_id")
  private String roleId;
  /**
   * 部門
   */
  @TableField("manager_department")
  private String managerDepartment;
  /**
   * 創(chuàng)建時(shí)間
   */
  @TableField("manager_create_time")
  private Date managerCreateTime;
  /**
   * 最近登陸時(shí)間
   */
  @TableField("manager_login_time")
  private Date managerLoginTime;
 
 
  @Override
  protected Serializable pkVal() {
    return this.managerId;
  }
 
}

Seal類

/**
 * <p>
 * 
 * </p>
 *
 * @author wihenne123
 * @since 2020-04-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("_seal")
public class Seal extends Model<Seal> {
 
  private static final long serialVersionUID = 1L;
 
  /**
   * 印章id
   */
  @TableId(value="seal_id",type = IdType.UUID)
  private String sealId;
  /**
   * 印章名
   */
  @TableField("seal_name")
  private String sealName;
  /**
   * 圖片路徑
   */
  @TableField("picture_path")
  private String picturePath;
  /**
   * 創(chuàng)建時(shí)間
   */
  @TableField("create_time")
  private Date createTime;
  /**
   * 更新時(shí)間
   */
  @TableField("update_time")
  private Date updateTime;
  /**
   * (-1:0:1 - 刪除:停用:啟用)
   */
  @TableField("seal_status")
  private Integer sealStatus; 
 
  @Override
  protected Serializable pkVal() {
    return this.sealId;
  } 
}

AuditProcess類,其中managerId和sealId需要對應(yīng)上面兩個(gè)表。

/**
 * <p>
 * 
 * </p>
 *
 * @author wihenne123
 * @since 2020-04-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("_audit_process")
public class AuditProcess extends Model<AuditProcess> {
 
  private static final long serialVersionUID = 1L;
 
  /**
   * 流程圖id
   */
  @TableId(value = "audit_id", type = IdType.AUTO)
  private Integer auditId;
  /**
   * 流程名稱
   */
  @TableField("audit_name")
  private String auditName;
  /**
   * 審核順序(,隔開-店長用shopManager表示)
   */
  @TableField("audit_sort")
  private String auditSort;
  /**
   * 狀態(tài)(-1:0:1-刪除:停用:啟用)
   */
  @TableField("audit_status")
  private Integer auditStatus;
  /**
   * 創(chuàng)建時(shí)間
   */
  @TableField("create_time")
  private Date createTime;
  /**
   * 更新時(shí)間
   */
  @TableField("update_time")
  private Date updateTime;
  /**
   * 印章id(無則為0)
   */
  @TableField("seal_id")
  private String sealId;
  /**
   * 創(chuàng)建人id
   */
  @TableField("manager_id")
  private String managerId;
  /**
   * 印章x位置
   */
  @TableField("seal_x")
  private Double sealX;
  /**
   * 印章y位置
   */
  @TableField("seal_y")
  private Double sealY;
  /**
   * 印章大小
   */
  @TableField("seal_size")
  private Double sealSize;
  /**
   * 印章所在頁碼
   */
  @TableField("seal_page")
  private Integer sealPage;
  /**
   * 序號x位置
   */
  @TableField("num_x")
  private Double numX;
  /**
   * 序號y位置
   */
  @TableField("num_y")
  private Double numY;
  /**
   * 序號大小
   */
  @TableField("num_size")
  private Double numSize;
  /**
   * 序號所在頁碼
   */
  @TableField("num_page")
  private Integer numPage;
  /**
   * pdf文件demo路徑
   */
  @TableField("pdf_demo_path")
  private String pdfDemoPath;
  /**
   * 反饋文件路徑
   */
  @TableField("result_file_path")
  private String resultFilePath;
  /**
   * 最大打印次數(shù)
   */
  @TableField("print_size")
  private Integer printSize;
 
 
  @Override
  protected Serializable pkVal() {
    return this.auditId;
  }
 
}

這時(shí)候我只需要對應(yīng)id的類的名稱,所以我設(shè)置了vo類作為子類

然后在接口里面寫轉(zhuǎn)換方法

/**
 * <p>
 * 服務(wù)實(shí)現(xiàn)類
 * </p>
 *
 * @author wihenne123
 * @since 2020-04-23
 */
@Service
public class AuditProcessServiceImpl extends ServiceImpl<AuditProcessMapper, AuditProcess> implements AuditProcessService {
  @Autowired
  ManagerService managerService;
  @Autowired
  SealService sealService;
  @Autowired
  AuditProcessService auditProcessService;
 
  @Override
  public List<AuditProcessVo> auditProcessToVo(List<AuditProcess> auditProcessList) {
    List<AuditProcessVo> auditProcessVos = new ArrayList<>();
    for(AuditProcess auditProcess:auditProcessList){
      //遍歷list
      auditProcessVos.add(auditProcessToVo(auditProcess));
    }
    return auditProcessVos;
  }
 
  @Override
  public AuditProcessVo auditProcessToVo(AuditProcess auditProcess) {
    AuditProcessVo auditProcessVo = new AuditProcessVo();
    BeanUtils.copyProperties(auditProcess,auditProcessVo); //復(fù)制進(jìn)vo類
 
    Manager manager = managerService.selectOne(
        new EntityWrapper<Manager>().setSqlSelect("manager_name","manager_department").eq("manager_id",auditProcess.getManagerId()));
    //加入字段值
    auditProcessVo.setManagerName(manager.getManagerName());
    auditProcessVo.setManagerDepartment(manager.getManagerDepartment());
 
    if(auditProcess.getSealId() != null){
      Seal seal = sealService.selectOne(
          new EntityWrapper<Seal>().setSqlSelect("seal_name").eq("seal_id",auditProcess.getSealId()));
      if(seal != null){
        auditProcessVo.setSealName(seal.getSealName());
      }
    }else {
      auditProcessVo.setSealName("無");
    }
 
    return auditProcessVo;
  }
}

再想調(diào)用時(shí)直接調(diào)用就可以了

以上這篇mybatis-plus 返回部分字段的解決方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java算法實(shí)現(xiàn)紅黑樹完整代碼示例

    java算法實(shí)現(xiàn)紅黑樹完整代碼示例

    這篇文章主要介紹了java算法實(shí)現(xiàn)紅黑樹完整代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Flyway詳解及Springboot集成Flyway的詳細(xì)教程

    Flyway詳解及Springboot集成Flyway的詳細(xì)教程

    Flayway是一款數(shù)據(jù)庫版本控制管理工具,,支持?jǐn)?shù)據(jù)庫版本自動升級,Migrations可以寫成sql腳本,也可以寫在java代碼里。這篇文章主要介紹了Flyway詳解及Springboot集成Flyway的詳細(xì)教程的相關(guān)資料,需要的朋友可以參考下
    2020-07-07
  • Java?CopyOnWriteArrayList源碼超詳細(xì)分析

    Java?CopyOnWriteArrayList源碼超詳細(xì)分析

    為了將讀取的性能發(fā)揮到極致,jdk中提供了CopyOnWriteArrayList類,下面這篇文章主要給大家介紹了關(guān)于java中CopyOnWriteArrayList源碼解析的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Java中對象的創(chuàng)建和銷毀過程詳析

    Java中對象的創(chuàng)建和銷毀過程詳析

    這篇文章主要介紹了Java中對象的創(chuàng)建和銷毀過程,對象的創(chuàng)建過程包括類加載檢查、內(nèi)存分配、初始化零值內(nèi)存、設(shè)置對象頭和執(zhí)行init方法,對象的銷毀過程由垃圾回收機(jī)制負(fù)責(zé),文中介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • Spring學(xué)習(xí)之依賴注入的方法(三種)

    Spring學(xué)習(xí)之依賴注入的方法(三種)

    本篇文章主要介紹了Spring學(xué)習(xí)之依賴注入的方法(三種),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • springboot中使用jpa下hibernate的ddl-auto方式

    springboot中使用jpa下hibernate的ddl-auto方式

    這篇文章主要介紹了springboot中使用jpa下hibernate的ddl-auto方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java中的ProcessBuilder類詳細(xì)解析

    Java中的ProcessBuilder類詳細(xì)解析

    這篇文章主要介紹了Java中的ProcessBuilder類詳細(xì)解析,ProcessBuilder類是J2SE 1.5在java.lang中新添加的一個(gè)新類,此類用于創(chuàng)建操作系統(tǒng)進(jìn)程,它提供一種啟動和管理進(jìn)程的方法,需要的朋友可以參考下
    2024-01-01
  • 詳解IDEA用maven創(chuàng)建springMVC項(xiàng)目和配置

    詳解IDEA用maven創(chuàng)建springMVC項(xiàng)目和配置

    本篇文章主要介紹了詳解IDEA用maven創(chuàng)建springMVC項(xiàng)目和配置 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Spring Boot項(xiàng)目如何同時(shí)支持HTTP和HTTPS協(xié)議的實(shí)現(xiàn)

    Spring Boot項(xiàng)目如何同時(shí)支持HTTP和HTTPS協(xié)議的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Boot項(xiàng)目如何同時(shí)支持HTTP和HTTPS協(xié)議的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 解決IntelliJ IDEA中鼠標(biāo)拖動選擇為矩形區(qū)域問題

    解決IntelliJ IDEA中鼠標(biāo)拖動選擇為矩形區(qū)域問題

    這篇文章主要介紹了解決IntelliJ IDEA中鼠標(biāo)拖動選擇為矩形區(qū)域問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評論

楚雄市| 铜鼓县| 兴宁市| 新乡县| 长泰县| 呈贡县| 西乡县| 泰州市| 开鲁县| 兴山县| 新绛县| 闸北区| 牡丹江市| 锡林郭勒盟| 米泉市| 读书| 聂荣县| 咸阳市| 博爱县| 丹东市| 墨脱县| 封丘县| 左贡县| 个旧市| 永春县| 昭苏县| 兴国县| 伊金霍洛旗| 武义县| 清涧县| 卢龙县| 宁强县| 花垣县| 方山县| 邓州市| 雷山县| 务川| 获嘉县| 平乐县| 阿拉尔市| 密山市|