在xml中collection、association的用法
在XML中,collection和association都是用来表示实体之间的关系的标签。
1. collection标签
collection标签用来表示一对多的关系,即一个实体拥有多个相关实体。例如,一个订单可能有多个订单项或者一个部门包含多个员工。
语法形式:
<collection property="属性名" ofType="元素类型"/>
其中,property属性指的是当前实体与关联实体之间的属性名,ofType属性指的是关联实体的类型。
示例:
我们假设一个实体类Order包含多个实体类OrderItem,那么这段XML就可以表示实体类之间的关系:
<resultMap id="orderMap" type="Order">
<id property="id" column="id"/>
<result property="orderNo" column="order_no"/>
<collection property="orderItems" ofType="OrderItem">
<id property="id" column="id"/>
<result property="itemName" column="item_name"/>
<result property="itemPrice" column="item_price"/>
</collection>
</resultMap>
2. association标签
association标签用来表示一对一的关系,即一个实体只拥有一个相关实体。例如,一个员工只能属于一个部门。
语法形式:
<association property="属性名" javaType="元素类型">
<!-- 此处是当前实体和关联实体的对应关系 -->
</association>
其中,property属性指的是当前实体和关联实体之间的属性名,javaType属性指的是关联实体的类型。
示例:
我们假设一个实体类Employee属于一个部门Department,那么这段XML就可以表示实体类之间的关系:
<resultMap id="employeeMap" type="Employee">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="address" column="address"/>
<result property="age" column="age"/>
<association property="department" javaType="Department">
<id property="id" column="id"/>
<result property="name" column="name"/>
</association>
</resultMap>