public class Two {
private Integer id;
private String name;
private Set<One> one = new HashSet<One>();
set/get方法省略
}
public class One {
private Integer id;
private String name;
private Two two;
set/get方法省略
}
多对一配置
one.hbm.xml
必须增加:
约束:<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="(包名完成路径)hibernatetest">
<class name="one" table="one" >
<id name="id">
<generator class="native"></generator>
</id>
<property name="name "></property>
//name:引用的属性名;one实体类中属性Two的名称
//column:外键名称
//class:Two的路径(包的路径在package中已经声明,在此只需填类名)
cascade:级联操作
save-update:级联保存操作更新
delete:级联删除
all:包含所有的级联操作(级联保存、更新、删除)
<many-to-one name="two" column="tid" class="Two" cascade="all"></many-to-one>
</class>
</hibernate-mapping>
一对多配置
Two.hbm.xml
必须增加:
约束:<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="hibernatetest">
<class name="Two" table="two">
<id name="id">
<generator class="identity"></generator>
</id>
<property name="name"></property>
//一对多
name:集合属性名
inverse:配置关系是否维护
true:不维护
false:维护(默认)
注:必须有一方维护,
一对多关系中,只能一的一方放弃维护
<set name="one" inverse="true" cascade="all">
//外键列名
<key column="tid"></key>
//相关联的完整类名
<one-to-many class="One"></one-to-many>
</set>
</class>
</hibernate-mapping>