单向N:1有中间表映射
其实在在部分时间是不需要进行有中间表的映射的,感觉显得很多余,但是hibernate也支持这样的操作,具体的单向N:1无中间表映射请参考http://www.cnblogs.com/yudy/archive/2012/11/03/2752198.html,其实这个和之前的差别主要是配置文件的差别,还有hibernate在数据库实现的时候增加了一个关联表。
现在只把有变化的部分贴出来。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.longtech.hibernate.domain.Employee" table="Employee"> <id name="id" column="id" type="java.lang.Long" > <meta attribute="field-description">唯一标识</meta> <generator class="native"/> </id> <property name="name" type="java.lang.String" column="name" length="20"> <meta attribute="field-description">员工名称</meta> </property> <!-- <many-to-one name="department" column="dept_id" cascade="all"></many-to-one> --> <join table="employ_depart"> <key column="empid"></key> <many-to-one name="department" cascade="all" column="deptid"></many-to-one> </join> </class> </hibernate-mapping>
变化的部分就是增加了一个join标签,使用join的时候通常会指定一个中间表。
在数据库层次,它会多出一个中间表
empid | deptid | |||
---|---|---|---|---|
1 | 1 |