Company.java
public class Company {
/**.
* 公司Id
*/
private Integer companyId;
/**.
* 公司名称
*/
private String companyName;
/**.
* 员工列表
*/
private List<Staff> staffs;
}
Staff.java
public class Staff {
/**.
* 员工Id
*/
private Integer staffId;
/**.
* 员工姓名
*/
private String staffName;
}
dao.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<!--
复合型数据查询一对多关系查询
-->
<sqlMap>
<typeAlias alias="Staff" type="com.asarja.entity.Staff"/>
<typeAlias alias="Company" type="com.asarja.entity.Company"/>
<resultMap id="staffResultMap" class="Staff" >
<result property="staffId" column="STAFF_ID"/>
<result property="staffName" column="STAFF_NAME"/>
</resultMap>
<resultMap class="Company" id="companyResultMap">
<result property="companyId" column="COMPANY_ID"/>
<result property="companyName" column="COMPANY_NAME"/>
<result property="staffs" column="COMPANY_ID" select="getStaffsById"/>
</resultMap>
<select id="getStaffsById" parameterClass="java.lang.Integer" resultMap="staffResultMap">
<![CDATA[select * from STAFF where STAFF_COMPANY_ID=#staffId#]]>
</select>
<select id="getCompany" parameterClass="Company" resultMap="companyResultMap">
<![CDATA[select * from COMPANY where COMPANY_ID=#companyId#]]>
</select>
</sqlMap>
拥有集合属性的一方为“一”的一方,而在集合中的对象为“多”的一方。