一对多··Hibernate添加数据方式(一)
来源:互联网 发布:自动排料软件 编辑:程序博客网 时间:2024/05/21 14:43
[quote=引用 10 楼 u010054969 的回复:]
设置inverse=”true”,由多的一段来来维护关系表
以Student(学生)和Class(班级)为例,它们之间的关系为一对多的关系,即一个学生只能属于一个班级,一个班级可以包含多个学生
[code=java]
学生类定义代码:
Class Student{
private int id;
private String name;
private Class class;
//省略getter()和setter()方法
}
班级类定义代码:
Class Class{
private int id;
private String name;
private Set students = new HashSet();
//省略getter()和setter()方法
}
Student类的映射文件:
<class name="Student" table="STUDENT">
<id name="id" type="int" column="ID">
<generator class="native" />
</id>
<property name="name" type="string" column="NAME" />
<many-to-one name="class" column="CLASS_ID" class="Class" cascade="save-update" />
</class>
Class类的映射文件:
<class name="Class" table="CLASS">
<id name="id" type="int" column="ID">
<generator class="native" />
</id>
<property name="name" type="string" column="NAME" />
<set name="students" table="STUDENT" cascade="save-update" inverse="false">
<key column="CLASS_ID" />
<one-to-many class="Student" />
</set>
</class>
希望你能对这两个映射文件所表达的数据库模式有正确的认识。即STUDENT表中存在一个名为CLASS_ID的字段,它和CLASS表中的ID字段是主外键关系。那个inverse属性就是用来规定是由谁(Student或Class)来维护这个主外键关系的。
inverse的默认值为false。
在处理逻辑代码中,如下:
Class c1 = new Class();
c1.setName("一班");
Student s1 = new Student();
Student s2 = new Student();
s1.setName("Jason");
s2.setName("Tom");
c1.getStudents().add(s1);
c2.getStudents().add(s2);
s1.setClass(c1);
s2.setClass(c1); //注释1
session.save(c1);
[/code][/quote]
设置inverse=”true”,由多的一段来来维护关系表
以Student(学生)和Class(班级)为例,它们之间的关系为一对多的关系,即一个学生只能属于一个班级,一个班级可以包含多个学生
[code=java]
学生类定义代码:
Class Student{
private int id;
private String name;
private Class class;
//省略getter()和setter()方法
}
班级类定义代码:
Class Class{
private int id;
private String name;
private Set students = new HashSet();
//省略getter()和setter()方法
}
Student类的映射文件:
<class name="Student" table="STUDENT">
<id name="id" type="int" column="ID">
<generator class="native" />
</id>
<property name="name" type="string" column="NAME" />
<many-to-one name="class" column="CLASS_ID" class="Class" cascade="save-update" />
</class>
Class类的映射文件:
<class name="Class" table="CLASS">
<id name="id" type="int" column="ID">
<generator class="native" />
</id>
<property name="name" type="string" column="NAME" />
<set name="students" table="STUDENT" cascade="save-update" inverse="false">
<key column="CLASS_ID" />
<one-to-many class="Student" />
</set>
</class>
希望你能对这两个映射文件所表达的数据库模式有正确的认识。即STUDENT表中存在一个名为CLASS_ID的字段,它和CLASS表中的ID字段是主外键关系。那个inverse属性就是用来规定是由谁(Student或Class)来维护这个主外键关系的。
inverse的默认值为false。
在处理逻辑代码中,如下:
Class c1 = new Class();
c1.setName("一班");
Student s1 = new Student();
Student s2 = new Student();
s1.setName("Jason");
s2.setName("Tom");
c1.getStudents().add(s1);
c2.getStudents().add(s2);
s1.setClass(c1);
s2.setClass(c1); //注释1
session.save(c1);
[/code][/quote]
0 0
- 一对多··Hibernate添加数据方式(一)
- Hibernate 添加数据 一 (一对多)
- Hibernate 一对多添加数据 (XML配置方式)
- 一对多hibernate 添加数据(二)
- hibernate 一对多 添加问题
- 4、Hibernate 实体关系映射(一、单边一对多关系 注解、xml两种方式)
- hibernate之双向一对多(注解方式)
- Hibernate一对多映射(注解方式解决)
- hibernate注解方式实现一对多映射
- hibernate注解方式实现一对多映射
- hibernate注解方式实现一对多映射
- hibernate中一对多的方式二
- hibernate注解方式实现一对多映射
- hibernate 注解方式,实现一对多映射
- hibernate注解方式实现一对多映射
- hibernate注解方式单向一对多关联
- hibernate注解方式双向一对多关联
- hibernate中一对多(多对一)双向关联
- windows下使用xShell向远程linux上传文件
- 學習UI/UX的四大重點
- 微信链接打开本地应用
- HDOJ 1285 确定比赛排名(拓扑排序)
- web前端开发的一些感受
- 一对多··Hibernate添加数据方式(一)
- xml-复合元素
- 关于Unity3D中的UnitySendMessage方法的使用!!!
- java中的matches()方法
- 开始了
- 一对多hibernate 添加数据(二)
- iis问题
- xml-schema仅含有文本及案例
- FileChannel的用法