【发布时间】:2013-11-20 17:10:22
【问题描述】:
我下载了一个 Hibernate 一对多示例,其中包含以下映射文件:
<hibernate-mapping>
<class name="Employee" table="EMPLOYEE">
<meta attribute="class-description">
This class contains the employee detail.
</meta>
<id name="id" type="int" column="id">
<generator class="native"/>
</id>
<set name="certificates" cascade="all">
<key column="employee_id"/>
<one-to-many class="Certificate"/>
</set>
<property name="firstName" column="first_name" type="string"/>
<property name="lastName" column="last_name" type="string"/>
<property name="salary" column="salary" type="int"/>
</class>
<class name="Certificate" table="CERTIFICATE">
<meta attribute="class-description">
This class contains the certificate records.
</meta>
<id name="id" type="int" column="id">
<generator class="native"/>
</id>
<property name="name" column="certificate_name" type="string"/>
</class>
</hibernate-mapping>
程序运行顺利,但我是Hibernate的新手,我只想了解员工信息存储在表EMPLOYEE中,证书信息存储在表CERTIFICATE中,现在因为一个员工可以拥有许多我们一对一使用的证书许多映射,即通过将其添加到映射文件:
<set name="certificates" cascade="all">
<key column="employee_id"/>
<one-to-many class="Certificate"/>
</set>
但是现在我想了解的是,当我们从表 EMPLOYEE 中获取记录时,我如何能够访问该员工的证书,我不明白的是我的表 EMPLOYEE 只有四列“id” , 'firstname', 'lastname' 和 'salary' 那么当我获取记录时,该对象也带有证书。
在多对多情况下,通常使用链接(中间)表。这允许 SQL 或任何数据库来维护关系,并且休眠只依赖于映射将正确的内容从数据库中提取出来。但是它如何管理一对多映射
【问题讨论】:
标签: hibernate hibernate-mapping