关联映射,就是将关联关系映射到数据库中,所谓的关联关系在对象模型中就是一个或多个引用。
多对一关联映射原理:在多的一端加入一个外键,指向一的一端。
在多的一端采用如下标签映射:
<many-to-onename="group" column="groupid"/>
User.hbm.xml文件配置:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.bjpowernode.hibernate.User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="group" column="groupid" cascade="save-update"/>
</class>
</hibernate-mapping>
Group.hbm.xml文件配置:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.bjpowernode.hibernate.Group" table="t_group">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>
多对一关联映射和一对多关联映射他们的本质其实是一样的,他们的区别在意不同的角度看,例如从用户这边来说,他和group的关系就是多对一的关系,但如果在group的角度就是一对多的关系了,这是就要看具体情况,看当时的业务更强调哪个,就从哪个角度来说。