首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hibernate中使用组合键进行一对一映射

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

Stack Overflow用户
提问于 2012-05-11 13:24:39
回答 1查看 1.2K关注 0票数 1

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

学生 RollNumber整数,StudentName字符串

CourseID整数,CourseName字符串

StudentCourses RollNumber整数,CourseID整数,AllotedRoom整数

Student.hbm.xml

代码语言:javascript
复制
<hibernate-mapping>
  <class name="myPackage.Student" table="STUDENT">
        <id name="ROLLNUMBER" type="integer">
            <column name="ROLLNUMBER" />
        </id>

        <property name="STUDENTNAME" type="string">
            <column name="STUDENTNAME"/>
        </property>
  </class>
</hibernate-mapping>

Course.hbm.xml

代码语言:javascript
复制
<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>

StudentCourses.hbm.xml

代码语言:javascript
复制
<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>

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-12 15:18:48

在您的学生课程中,您可以指定链接类。所以那会是

代码语言:javascript
复制
<many-to-one name="Student"
                column="studentid"
                update="false" insert="false"/>

在Java学生课程类中,您可以指定“学生”对象,并在查询中使用studentcourse.student.studentname检索名称。顺便说一句,StudentCourse通常是一个类,所以您可能想要更改这个名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10552249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档