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

 

查詢出來的結果符合預期,如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM