zoukankan      html  css  js  c++  java
  • 解决MyBatis 多表联合查询,字段重复的问题

    属性名表实体

    @Data
    public class PmsBaseAttrInfo implements Serializable {
    
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Id
        @Column
        private String id;
        @Column
        private String attrName;
        @Column
        private String catalog3Id;
        @Column
        private String isEnabled;
        @Transient
        List<PmsBaseAttrValue> attrValueList;
    
    }

    属性值表实体

    @Data
    public class PmsBaseAttrValue implements Serializable {
        @Id
        @Column
        private String id;
        @Column
        private String valueName;
        @Column
        private String attrId;
        @Column
        private String isEnabled;
    
        @Transient
        private String urlParam;
    }

    属性名表实体id与属性值表实体id字段一样,属性名表与属性值关系是一对多关联,如果在mybatis不使用别名的话,mybatis是识别不了的,查询出来的结果是混乱的

    使用别名的查询如下 :

    属性名表与属性值表的id字段相同,如果不用别名的话,查询的结果会出现意想不到的错误,因此,设置属性值表的id为attrValueId

    同时也要更改column为别名字段,这样查询出来的结果还是和实体一致,不会变成attrValueId,这个只是给mybatis起识别作用

    <id property="id" column="attrValueId" />

    查询出来的结果符合预期,如下:

  • 相关阅读:
    MongoDB 基础API使用
    MongoDB -- JAVA基本API操作
    Docker数据管理
    Docker容器的简单使用
    Docker
    Centos 7.3 镜像制作
    Fuel部署OpenStack
    Fuel
    Ceph添加、删除osd及故障硬盘更换
    ceph常用命令
  • 原文地址:https://www.cnblogs.com/caohanren/p/12973505.html
Copyright © 2011-2022 走看看