疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Hibernate单向无链接表映射


 

Hibernate单向无链接表映射
 
多的一方映射文件
 
<hibernate-mapping package="XXX">
<!-- 映射Person持久化类-->
<class name="Person" table="person_inf">
<!-- 映射标识属性id -->
<id name="id" column="person_id">
<generator class="identity"/>
</id>
<property name="name" type="string"/>
<property name="age" type="int"/>
<!-- 映射集合属性,集合元素是其他持久化实体没有指定cascade属性 -->
<set name="addresses">
<!-- 指定关联的外键列 -->
<key column="person_id"/>
<!-- 用以映射到关联类属性 -->
<one-to-many class="Address"/>
</set>
</class>
</hibernate-mapping>
单方的映射文件
<hibernate-mapping package="XXX">
<!-- Address持久化类-->
<class name="Address" table="address_inf">
<!-- 映射标识属性addressId -->
<id name="addressId" column="address_id">
<generator class="identity"/>
</id>
<property name="addressDetail"/>
</class>
</hibernate-mapping>
关系映射
//创建一个Person对象
Person p = new Person();
//创建一个瞬态的Address对象
Address a = new Address("广州天河");
//必须先持久化Address对象
session.persist(a);  //①
//设置Person的Name为Yeeku字符串
p.setName("Yeeku");
p.setAge(29);
//设置Person和Address之间的关联关系
p.getAddresses().add(a);
//持久化Person对象
session.save(p);
//创建一个瞬态的Address对象
Address a2 = new Address("上海虹口");
//先持久化Address对象
session.persist(a2); //②
//修改持久化状态的Person对象
p.getAddresses().add(a2);