2012-05-02 45 views
2

您好,我有多对多的连接表中的额外列映射。 表结构看起来像这样。许多到多个Hibernate映射与额外的列?

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. Vendor.java
public class Vendor { 
Long vendorId; 
Set<VendorStudentTest> tests; 
//set and get 
} 
  1. Student.java
public class Student{ 
Long studentId; 
Set<VendorStudentTest> tests; 
//set and get 
} 
  1. Test.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映射文件如下

vendor.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> 

student.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> 

test.hbm.xml

//this is mapped to other table 

我是新来的hibernate,这是正确的映射?

回答