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

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

  • 相关阅读:
    [转]Modernizr的介绍和使用
    java动态代理使用详解
    ajax上传文件以及使用中常见问题处理
    cmd下查询端口占用以及根据进程id名称结束进程
    水平居中 垂直居中
    inline-block和float
    一起入门前端(三)
    一起入门前端(二)
    一起入门前端(一)
    WPF初学——自定义样式
  • 原文地址:https://www.cnblogs.com/caohanren/p/12973505.html
Copyright © 2011-2022 走看看