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" />

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

  • 相关阅读:
    ●表单元素
    ●HTML网页标签2
    ●数据库的备份
    ●HTML网页标签1
    ●索引、视图、游标
    ●SQL编程
    ●关系数据库基础
    ●常用函数
    ●SQL练习题
    ●SQL高级查询
  • 原文地址:https://www.cnblogs.com/caohanren/p/12973505.html
Copyright © 2011-2022 走看看