Hibernate基于外键的一对多单向关联
一对多,一个分类Category下有多个Product,从Cateogry角度去保存数据。
?
创建数据库脚本如下:(参看附件)
?
session.save(category);//启用级联操作session.save(product);session.save(product1);tx.commit();
?
而启用级联,则只需要保存category就行。
?
cascade取值如下:
all : 所有情况下均进行关联操作。
none:所有情况下均不进行关联操作。(默认值)
save-update:在执行save/update/saveOrUpdate时进行关联操作。
delete:在执行delete时进行关联操作。
?
请注意看一下sql,以Hibernate:开头的才是hibernate执行的sql,其他的代表发送给hibernate执行的sql语句。刚开始看错了,还以为hibernate执行了多条sql。
?
?
这种方法Hibernate reference称之为
基于外键关联的单向一对多关联是一种很少见的情况,并不推荐使用。
推荐使用:
基于连接表的单向一对多关联 应该优先被采用。请注意,通过指定unique="true",我们可以把多样性从多对多改变为一对多。