IdBag作为Hibernate集合映射的一种扩展。可以在定义Bag映射时,为每一个添加的对象指定“id”,让Hibernate可以直接确定要更新的数据。
使用方法如下:
public class User {
private String id;
private String username;
private String password;
private List emails = new ArrayList();
public String getId() {
....
对应的get/set方法省略
}
public class EMail {
private String userId;
private String emailAddress;
....
对应的get/set方法省略
}
<hibernate-mapping>
<class name="com.kkoolerter.hibernate.beans.User" table="tb_user">
<id name="id">
<generator class="uuid"/>
</id>
<property name="username" />
<property name="password"/>
<idbag name="emails" table="tb_email">
<collection-id type="java.lang.Integer" column="idx">
<generator class="increment"/>
</collection-id>
<key column="userid" foreign-key="id"/>
<element type="java.lang.String" column="emailaddress"></element>
</idbag>
</class>
</hibernate-mapping>