我下载了一个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只依赖于映射来从数据库中提取正确的东西。但它如何通过一对多映射进行管理
答案 0 :(得分:-1)
在您的情况下,employeeId将在Certificate表中可用。它将作为employee表的外键。