實體類:
public class ResumeDetailVO {
@ApiModelProperty("使用者資訊")
private UserInfo userInfo; //一對一,使用association
@ApiModelProperty("工作經驗")
List<Experience> experiences; //一對多,使用collection
}
對應的resultMap :
<resultMap id="ResumeDetailMap" type="ResumeDetailVO">
<association property="userInfo" javaType="UserInfoVO">
<result column="name" property="name"></result>
<result column="phone" property="phone"></result>
<result column="email" property="email"></result>
<result column="identity_card" property="identityCard"></result>
<result column="sex" property="sex"></result>
<result column="birth_date" property="birthDate"></result>
<result column="educational" property="educational"></result>
<result column="region" property="region"></result>
<result column="address" property="address"></result>
<result column="salary" property="salary"></result>
<result column="avatar_url" property="avatarUrl"></result>
</association>
<collection property="experiences" ofType="Experience">
<result column="start_ts" property="startTs"></result>
<result column="end_ts" property="endTs"></result>
<result column="company" property="company"></result>
<result column="work_tag" property="workTag"></result>
<result column="work_type" property="workType"></result>
<result column="company_dept" property="companyDept"></result>
<result column="description" property="description"></result>
</collection>
</resultMap>
總結:
1、association表示的是has one的關係,一對一時使用。使用javaType
2、collection表示的是has many的關係,一對多時使用。使用ofType
注意:
所有select 標籤中的resultType以及resultMap中的type、association中的javaType、collection中的ofType,如果型別是實體類的話需要寫類的全類名。
這裡只寫了類名,是因為在組態檔(mybatis-config.xml或properties.yml)中設定了typeAliases,否則就要寫該類的全類名。