hibernate之多对一关联映射
2009-11-02 22:10
197 查看
many-to-one 多对一关联映射
Student - Class 多个学生属于一个班
public class Class {
private String id;
private String name;
........
}
public class Student{
private String id;
private String name;
........
private Class class;
.........
}
Student.hbm.xml(学生映射文件) 如下:
........
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<money-to-one name="class" column="classid" />
.........
在多的一端加一个字段 class,用 column 重命名为classid。classid 作为外键指向Class端。
需要注意的是:save 时,先session.save(class),不然会报错(save(Student)时会查找classid的值,没有分配class,classid值不存在,就会报TransientObjectException),所以要先分配了Class
如果想偷懒的话,只要添加一个cascade属性,如下
<money-to-one name="class" column="classid" cascade="all"/>就可以自动save class,不会抛异常
cascade可以取得值:all none sava-update delete
all代表在所有情况下都执行级联操作
none在所有情况下都不执行级联操作
sava-update保存和更新的时候执行级联操作
delete删除的时候执行级联操作
(级联:对象的连锁操作)
个人还是喜欢手动save ,清晰直观
加载(load)的时候,从student加载class,OK,没有问题
Student - Class 多个学生属于一个班
public class Class {
private String id;
private String name;
........
}
public class Student{
private String id;
private String name;
........
private Class class;
.........
}
Student.hbm.xml(学生映射文件) 如下:
........
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<money-to-one name="class" column="classid" />
.........
在多的一端加一个字段 class,用 column 重命名为classid。classid 作为外键指向Class端。
需要注意的是:save 时,先session.save(class),不然会报错(save(Student)时会查找classid的值,没有分配class,classid值不存在,就会报TransientObjectException),所以要先分配了Class
如果想偷懒的话,只要添加一个cascade属性,如下
<money-to-one name="class" column="classid" cascade="all"/>就可以自动save class,不会抛异常
cascade可以取得值:all none sava-update delete
all代表在所有情况下都执行级联操作
none在所有情况下都不执行级联操作
sava-update保存和更新的时候执行级联操作
delete删除的时候执行级联操作
(级联:对象的连锁操作)
个人还是喜欢手动save ,清晰直观
加载(load)的时候,从student加载class,OK,没有问题
相关文章推荐
- Hibernate之一对多关联映射
- Hibernate 关联映射之---- 一对多双向映射
- 【HIbernate框架学习】:Hibernate对象关系映射之单向一对多关联映射
- hibernate中实体关联的注解写法(组件映射)
- Hibernate学习_009_一对一关联映射
- Hibernate关联映射-----一对一关联
- Hibernate多对多关联映射的HQL中的in条件查询问题
- hibernate映射一对一关联 6
- 【Java】Hibernate(七)关联映射之多对一
- Hibernate关联映射
- Hibernate 关系关联映射和cascade与inverse
- Hibernate的关联映射之1-1关联映射
- Hibernate学习13 -- 关联映射3 -- 一对一关联2 -- 一对一唯一外键关联
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- Hibernate框架中的关联映射
- hibernate之关于一对多单向关联映射
- hibernate之关于多对一单向关联映射
- Hibernate之关于多对多双向关联映射
- 【Hibernate步步为营】--(一对多映射)之双向关联
- Hibernate关系映射2:双向1-N关联