其实在在部分时间是不需要进行有中间表的映射的,感觉显得很多余,但是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的时候通常会指定一个中间表。

在数据库层次,它会多出一个中间表

单向N:1有中间表映射 empid deptid
单向N:1有中间表映射 单向N:1有中间表映射 1 1

相关文章:

  • 2021-05-26
  • 2021-06-14
  • 2022-01-02
  • 2022-12-23
  • 2021-06-09
  • 2021-10-25
  • 2021-10-20
  • 2021-04-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-28
  • 2021-12-13
  • 2021-08-20
  • 2021-09-22
相关资源
相似解决方案