一、关联映射的本质:
* 将关联关系映射到数据库,所谓的关联关系是对象模型在内存中的一个或多个引用
<many-to-one>会在多的一端加入一个外键,指向一的一端,这个外键是由<many-to-one>
中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致
<many-to-one>标签的定义示例:
* <many-to-one name="group" column="groupid"/>
1、User的POJO类:
1public class User {
2
3 private int id;
4
5 private String name;
6
7 private Group group;
8//省略setter、getter方法
9}2、Group的POJO类:
1public class Group {
2
3 private int id;
4
5 private String name;
6//省略setter、getter方法
7}
3、User的映射文件User.hbm.xml:
1<?xml version="1.0"?>
2<!DOCTYPE hibernate-mapping PUBLIC
3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5<hibernate-mapping>
6 <class name="com.bjsxt.hibernate.User" table="t_user">
7 <id name="id">
8 <generator class="native"/>
9 </id>
10 <property name="name"/>
11 <many-to-one name="group" column="groupid"/>
12 </class>
13</hibernate-mapping>
4、Group的映射文件Group.hbm.xml:
1<?xml version="1.0"?>
2<!DOCTYPE hibernate-mapping PUBLIC
3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5<hibernate-mapping>
6 <class name="com.bjsxt.hibernate.Group" table="t_group">
7 <id name="id">
8 <generator class="native"/>
9 </id>
10 <property name="name"/>
11 </class>
12</hibernate-mapping>