如何在hibernate中使用复合键进行一对一映射

如何在hibernate中使用复合键进行一对一映射,hibernate,Hibernate,我有三张桌子。学生可以注册多个课程 学生 RollNumber整数,StudentName字符串 课程 CourseID整数,CourseName字符串 学生课程 RollNumber整数、CourseID整数、AllotedRoom整数 Student.hbm.xml Course.hbm.xml StudentCourses.hbm.xml 对于在StudentCourses表中选择的任何记录,我希望获得学生姓名以及 课程名称。我的映射文件应该是什么样子?在学生课程中使用多对一,您可以指定链

我有三张桌子。学生可以注册多个课程

学生 RollNumber整数,StudentName字符串

课程 CourseID整数,CourseName字符串

学生课程 RollNumber整数、CourseID整数、AllotedRoom整数

Student.hbm.xml

Course.hbm.xml

StudentCourses.hbm.xml

对于在StudentCourses表中选择的任何记录,我希望获得学生姓名以及
课程名称。我的映射文件应该是什么样子?

在学生课程中使用多对一,您可以指定链接的类。 那就是

<many-to-one name="Student"
                column="studentid"
                update="false" insert="false"/>
在Java studentcourse类中,可以指定Student对象的名称,并在查询中使用studentcourse.Student.studentname检索名称。 顺便说一句,StudentCourse通常是一个类,因此您可能需要更改该名称

<hibernate-mapping>
  <class name="myPackage.Course" table="COURSE">
        <id name="COURSEID" type="integer">
            <column name="COURSEID" />
        </id>

        <property name="COURSENAME" type="string">
            <column name="COURSENAME"/>
        </property>
  </class>
</hibernate-mapping>
<hibernate-mapping>
  <class name="myPackage.StudentCourses" table="STUDENTCOURSES">
        <composite-id name="STUDENTCOURSES_pk" class="myPackage.STUDENTCOURSES_PK">
             <key-property name="STUDENTID" column="STUDENTID"/>
             <key-property name="COURSEID" column="COURSEID"/>
        </composite-id>

        <property name="ALLOTEDROOM" type="integer">
            <column name="ALLOTEDROOM"/>
        </property>
  </class>
</hibernate-mapping>
<many-to-one name="Student"
                column="studentid"
                update="false" insert="false"/>