首页 > 解决方案 > 如何使用 Mybatis 将 Addresses 类与 EmployeeMap 中的地址列表映射?

问题描述

**如何使用 Mybatis 将 Addresses 类与 EmployeeMap 中的地址列表映射?我下面的代码正确吗?**

下面是获取employeeId 和hos 多个地址位置的查询。如何在 MyBatis 中映射这些字段?感谢您帮助绘制字段。仅供参考,我无法使用其他字段发布完整的地址类

<resultMap id="EmployeeMap" type="Employee">
    <result column="emplId" property="emplId"/>
    <collection property="addressList" >
        <result column="addressLineOne" property="addressLineOne"/>
        <result column="addressLineTwo" property="addressLineTwo"/>
        <result column="city" property="city"/>
        <result column="country" property="country"/>
        <result column="zipCode" property="zipCode"/>
    </collection>
 </resultMap>
 <select id="employeeData" resultMap="EmployeeMap">Select * from employee</select>

这是我的 Java 代码

public class Employee{

    String emplId;
    Addresses addressList;

    public String getEmplId() {
        return emplId;
    }

   public void setEmplId(Addresses value) {
        this.emplId = value;
   }


   public Addresses getAddressList() {
       return addressList;
   }

   public void setAddressList(Addresses value) {
       this.addressList = value;
   }
}
public class Addresses{

   List<Address> addresses;

   public List<Address> getAddresses() {
     if (addresses == null) {
        addresses = new ArrayList<Address>();
      }
     return this.addresses;
   }
 }
 public class Address{
   String city;

  public String getCity(){
       return city;
   }

   public void setCity(String value) {
       this.city = value;
   }
}

标签: javamybatisibatis

解决方案


的目标属性<collection />addressList.addresses,因此结果映射应如下所示:

<resultMap id="EmployeeMap" type="Employee">
  <id column="emplId" property="emplId"/>
  <collection property="addressList.addresses"
      javaType="list" ofType="Address">
    <result column="addressLineOne" property="addressLineOne"/>
    <result column="addressLineTwo" property="addressLineTwo"/>
    <result column="city" property="city"/>
    <result column="country" property="country"/>
    <result column="zipCode" property="zipCode"/>
  </collection>
</resultMap>

注意:您应该<id />在父结果映射中指定。


推荐阅读