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

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

  • 相关阅读:
    存储过程
    Java抽象类与接口的区别
    Spring资源
    30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)
    单例模式(Singleton)的同步锁synchronized
    常用快捷键大全
    设计模式学习总结(一)——设计原则与UML统一建模语言
    git命令
    Test测试方法
    oracle表分区
  • 原文地址:https://www.cnblogs.com/caohanren/p/12973505.html
Copyright © 2011-2022 走看看