2

嗨,我在连接表中有多对多的映射和额外的列。表结构看起来像这样。

table vendor{vendor_id, vendor_name, vendor_password, etc...}
table student{student_id, student_name, student_password, etc..}
table test{test_id, test_subject, test_price,test_level, etc..}

关系如下

vendor to test --> many-to-many
student to test --> many-to-many

关联

table vendor_student_test{vendor_id, student_id, test_id, purchasedDate, assignedDate, writtenDate, result}

我创建了 POJO 类如下

  1. 供应商.java
public class Vendor {
Long vendorId;
Set<VendorStudentTest> tests;
//set and get
}
  1. 学生.java
public class Student{
Long studentId;
Set<VendorStudentTest> tests;
//set and get
}
  1. 测试.java
public class Test{
Long test_id;
double test_price;
//set and get and remaining fields
}
  1. VendorStudentTest.java
public class VendorStudentTest{
public VendorStudentTestPK vendorStudentTestPK;
Date purchasedDate;
Date assignDate;
Date writtenDate;
double result;
//set and get accordingly
}
  1. VendorStudentTestPK.java
public class VendorStudentTestPK{
Long vendor_id;
Long student_id;
Long test_id;
}

Hibernate映射文件如下

供应商.hbm.xml

<set name="tests" table="vendor_student_test"
                inverse="true" lazy="true" fetch="select">
            <key>
                <column name="vendor_id" not-null="true" />
            </key>
            <one-to-many class="VendorStudentTest" />
        </set>

vendor_student_test.hbm.xml

    <composite-id name="vendorStudentTestPK"
        class="com.onlineexam.model.VendorStudentTestPK">

        <key-property name="vendor" column="vendor_id"
            type="java.lang.Long" />
        <key-property name="student" column="student_id"
            type="java.lang.Long" />
        <key-property name="test" column="test_id" type="java.lang.Long" />

    </composite-id>

学生.hbm.xml

<set name="tests" table="vendor_student_test"
                inverse="true" lazy="true" fetch="select">
            <key>
                <column name="student_id" not-null="true" />
            </key>
            <one-to-many class="VendorStudentTest" />
        </set>

测试.hbm.xml

//this is mapped to other table 

我是休眠新手,这是正确的映射吗?

4

1 回答 1

1

可以在这里找到带有注释案例的解决方案

如何为连接表中的其他属性创建多对多 Hibernate 映射?

使用 xml 文件的解决方案可以在这里找到: 映射相同的类关系

和这里:

映射相同的类关系 - 继续

于 2012-05-02T14:58:30.227 回答