javabean:
//学生类,对应多个课程
public class Student { private int id;
private String name;
private String password;
private String major;
private String school;
private Set Courses; //一对多
.......
}
//分数类,对应一个课程
public class Point { private int id;
private Course course; //一对一
private double point;
...........
}
//课程类,对应一个分数和一个学生
public class Course { private int id;
private String name;
private Point point; //一对一
private Student student;//多对一
...........
}
*************************************************************
映射文件:
point:
<hibernate-mapping package="domain">
<class name="Point" table="t_point">
<id name="id">
<generator class="native"/>
</id>
<property name="point" not-null="true"/>
<one-to-one name="course"
property-ref="point"
></one-to-one>
</class>
</hibernate-mapping>
student:
<hibernate-mapping package="domain">
<class name="Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true"/>
<property name="password" not-null="true"/>
<property name="major"/>
<property name="school"/>
<set name="courses" inverse="true" cascade="all">
<key column="student_id"/>
<one-to-many class="Course"/>
</set>
</class>
</hibernate-mapping>
course:
<hibernate-mapping package="domain">
<class name="Course" table="t_course">
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true"/>
<many-to-one name="student"
column="student_id"
cascade="all"
></many-to-one>
<many-to-one name="point"
unique="true"
></many-to-one>
</class>
</hibernate-mapping>
测试的时候出现问题:
22:11:40,640 ERROR SchemaUpdate:155 - Unsuccessful: alter table t_course add index FK62BB32469E687C90 (student_id), add constraint FK62BB32469E687C90 foreign key (student_id) references t_student (id)
22:11:40,656 ERROR SchemaUpdate:156 - Can't create table 'student.#sql-b20_15' (errno: 150)
只能保存单个信息
他们之间的外键参考信息始终是null
请高手检查错误
//学生类,对应多个课程
public class Student { private int id;
private String name;
private String password;
private String major;
private String school;
private Set Courses; //一对多
.......
}
//分数类,对应一个课程
public class Point { private int id;
private Course course; //一对一
private double point;
...........
}
//课程类,对应一个分数和一个学生
public class Course { private int id;
private String name;
private Point point; //一对一
private Student student;//多对一
...........
}
*************************************************************
映射文件:
point:
<hibernate-mapping package="domain">
<class name="Point" table="t_point">
<id name="id">
<generator class="native"/>
</id>
<property name="point" not-null="true"/>
<one-to-one name="course"
property-ref="point"
></one-to-one>
</class>
</hibernate-mapping>
student:
<hibernate-mapping package="domain">
<class name="Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true"/>
<property name="password" not-null="true"/>
<property name="major"/>
<property name="school"/>
<set name="courses" inverse="true" cascade="all">
<key column="student_id"/>
<one-to-many class="Course"/>
</set>
</class>
</hibernate-mapping>
course:
<hibernate-mapping package="domain">
<class name="Course" table="t_course">
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true"/>
<many-to-one name="student"
column="student_id"
cascade="all"
></many-to-one>
<many-to-one name="point"
unique="true"
></many-to-one>
</class>
</hibernate-mapping>
测试的时候出现问题:
22:11:40,640 ERROR SchemaUpdate:155 - Unsuccessful: alter table t_course add index FK62BB32469E687C90 (student_id), add constraint FK62BB32469E687C90 foreign key (student_id) references t_student (id)
22:11:40,656 ERROR SchemaUpdate:156 - Can't create table 'student.#sql-b20_15' (errno: 150)
只能保存单个信息
他们之间的外键参考信息始终是null
请高手检查错误
如果是,你就得使用级联属性cascade。
的属性要 属性=new CLass()
否则引用一直为空那么外键当然为空
如果没有会报null错
<one-to-many class="Course" column="关联字段"/>
<column name="外键" length="10" />
</key-many-to-one>