Hibernate 是如何管理数据库表的关联关系的
Hibernate 是如何管理数据库表的关联关系的
数据库的关联关系是通过主外键实现的:
Hibernate中管理的实体类的关联关系是通过包含来实现的,根据关联的2方是否相互包含分为单向关联和双向关联:
Hibernate 配置实体关联不仅仅要在实体类中包含关联类,而且要在hbm映射文件中说明。
一对一外键关联
Class Team()
{
Int teamid;
String teamname;
Address address;
}
<hibernate-mapping> <class name="com.suxiaolei.hibernate.pojos.Team" table="team"> <id name="id" type="integer"> <column name="id"></column> <generator class="increment"></generator> </id> <property name="name" column="name" type="string"></property> <many-to-one name="adress" class="com.suxiaolei.hibernate.pojos.Adress" column="adress_id" unique="true"></many-to-one> </class> </hibernate-mapping>
Class Address()
{
Int addId;
String city;
String detailAdd;
Team team;
}
<hibernate-mapping> <class name="com.suxiaolei.hibernate.pojos.Adress" table="adress"> <id name="id" type="integer"> <column name="id"></column> <generator class="increment"></generator> </id> <property name="city" column="city" type="string"></property> <one-to-one name="team" class="com.suxiaolei.hibernate.pojos.Team" cascade="all"></one-to-one> </class>
一对一主键关联
Class Team()
{
Int teamid;
String teamname;
Address address;
}
<hibernate-mapping> <class name="com.suxiaolei.hibernate.pojos.Team" table="team"> <id name="id" type="integer"> <column name="id"></column> <generator class="foreign"> <param name="property">adress</param> </generator> </id> <property name="name" column="name" type="string"></property> <one-to-one name="adress" class="com.suxiaolei.hibernate.pojos.Adress" cascade="all"></one-to-one> </class> </hibernate-mapping>
Class Address()
{
Int addId;
String city;
String detailAdd;
Team team;
}
<class name="com.suxiaolei.hibernate.pojos.Adress" table="adress"> <id name="id" type="integer"> <column name="id"></column> <generator class="increment"></generator> </id> <property name="city" column="city" type="string"></property> <one-to-one name="team" class="com.suxiaolei.hibernate.pojos.Team" cascade="all"></one-to-one> </class>
|
评论暂时关闭