您的位置:首页 > 其它

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,没有问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: