hibernate中的一对多映射

时间:2012-02-05 03:22:47

标签: hibernate

我是春天和休眠的新手。我正在创建一个职位门户网站。一项工作可以立即与多项资格相关。在我的添加工作表单上,我有一个选择框 特定工作的资格。资格认证可以是多重的,意味着存在一对多关系,那么如何才能使这种关系在休眠状态下发挥作用。

在数据库中,我有三个表:job,qual,jobqual。

jobqual表用于保存具有多种资格的作业。

我的Job.hbm.xml如下:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="com.jobs.admin.data.Job" table="S_JOBS" >
        <id name="jobKid" column="JOB_KID" type="integer" >
            <generator class="sequence">
                <param name="sequence">job_sequence</param>
            </generator>
        </id>
        <property name="jobStatus" column="JOB_STATUS" type="boolean" />
        <property name="jobTitle" column="JOB_TITLE" type="string" length="500"/>
        <property name="jobDesc" column="JOB_DESC" type="string" length="4000"></property>
        <property name="jobCity" column="JOB_CITY" type="integer"></property>
        <property name="jobExp" column="JOB_EXP" type="integer"></property>
        <property name="jobStartDate" column="JOB_STARTDATE" type="string"></property>
        <property name="jobEndDate" column="JOB_ENDDATE" type="string"></property>
        <many-to-one name="jobCompany" class="com.jobs.admin.data.Company" column="JOB_COMPANY" ></many-to-one>
        <many-to-one name="jobCat" class="com.jobs.admin.data.JobCat" column="JOB_CAT"></many-to-one>
        <set name="jobQual" table="S_JOBQUAL" >
            <key column="JOB_KID" />
        <many-to-many class="com.jobs.admin.data.Qual" unique="true" column="QUAL_KID" />
        </set>
    </class>

</hibernate-mapping>

我无法理解我在xml文件中定义的集合,我应该在Job类中定义任何属性吗?如果是,那么我的选择框选择将如何映射到该集合,因为选择框在多个选择上返回String []。 我如何在休眠状态下完成所有这些?如果存在此类条件的任何教程,请发给我链接。

1 个答案:

答案 0 :(得分:0)

这个link演示了一个hibernate中一对多关系的例子。我希望这可以帮助你。除了 set 标记之外,您在xml文件中使用的标记代表 java.collection.Set 。在作业课程中,您必须使用类型Qual 。链接中给出的示例也演示了这种机制。