1

私は3つのテーブルを持っています。学生は複数のコースに登録できます。

Student RollNumber 整数、StudentName 文字列

コース CourseID 整数、CourseName 文字列

StudentCourses RollNumber 整数、CourseID 整数、AllotedRoom 整数

Student.hbm.xml

<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

<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

<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 テーブルで選択された任意のレコードについて、学生名とコース名を取得したいと考えています。この場合、マッピング ファイルはどのようになりますか?

4

1 に答える 1

0

Studentcourses で多対 1 を使用すると、リンクされたクラスを指定できます。それはそうでしょう

<many-to-one name="Student"
                column="studentid"
                update="false" insert="false"/>

Java Studentcourse クラスでは、Student オブジェクトを指定しstudentcourse.student.studentname、クエリで名前を取得できます。ところで、StudentCourse は通常クラスであるため、その名前を変更したい場合があります。

于 2012-05-12T15:18:48.623 に答える