Hibernate学习的一个问题

jaisokforron jaisokforron 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在学习Hibernate的集合映射(用List映射),想做成多对多的List集合映射,单向的能做成功,可是双向的老是报错, Field 't_index' doesn't have a default value可是一个它要什么默认值啊?代码如下,请指教
public class Student {

private int id;
private String name;
private Date creDate;
private List<Teacher> teachers;……}

public class Teacher {

private int id;
private int age;
private String pro;
private List<Student> students;……}

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.test.vo">
<class name="Teacher" table="t_teacher">
<id name="id">
<generator class="native"/>
</id>
<property name="pro" column="pro"/>
<property name="age" column="age"/>


<list name="students" table="t_teacher_student" cascade="save-update">
<key column="t_id" not-null="true"></key>
<index column="s_index"></index>
<many-to-many class="Student" column="s_id"></many-to-many>
</list>

</class>
</hibernate-mapping>

<hibernate-mapping package="com.test.vo">
<class name="Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name" column="sname"/>
<property name="creDate" column="credate" type="date"/>

<list name="teachers" table="t_teacher_student" cascade="save-update">
<key column="s_id" not-null="true"></key>
<index column="t_index"></index>
<many-to-many class="Teacher" column="t_id"></many-to-many>
</list>

</class>
</hibernate-mapping>

public class TestSave1 extends TestCase {

public void save1(){
Session session=null;
try {
session=HibernateSessionFactory.getSession();
session.beginTransaction();
Student s1=new Student();
s1.setName("s1");
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
try {
s1.setCreDate(sf.parse("1988-08-09"));
} catch (ParseException e) {
e.printStackTrace();
}

Student s2=new Student();
s2.setName("s2");
try {
s2.setCreDate(sf.parse("1988-09-08"));
} catch (ParseException e) {
e.printStackTrace();
}

Teacher t1=new Teacher();

List<Student> list=new ArrayList<Student>();
list.add(s1);
list.add(s2);
t1.setAge(77);
t1.setPro("computer");
t1.setStudents(list);

session.save(t1);
session.getTransaction().commit();
} catch (HibernateException e) {
e.printStackTrace();
} catch(Exception ee){
ee.printStackTrace();
} finally{
HibernateSessionFactory.closeSession();
} }
...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
jaisokforron
Java EE 67,535 成员 225,843 内容