休眠。 2个函数:simpleSave(),saveWithCascade()。能做到吗?如何?

时间:2010-05-20 19:58:49

标签: java hibernate cascade

我有一个场景,我有: 父类Parent,具有一些简单属性(int,String等)和2组子项。 设置childrenA; 设置childrenB;

我可以为父simpleSave(父p)创建一个保存函数,它将仅保存/仅保存数据库中的父属性,并具有一个将级联到其子级的函数saveWithCascade(Parent p)吗?

稍后编辑:通过保存我实际上意味着更新。因为如果我知道只有一个属性或一组改变了,我不希望hibernate在其他人上做很多选择只是为了检查他们是否改变了

2 个答案:

答案 0 :(得分:0)

是的,你可以。假设您已正确定义了hibernate映射。您可以致电session.save(Parent)

当你保存孩子时,你可以在你的方法中做一些这样的事情

Parent p = new Parent();
Child c = new Child();
p.addChild(c);
session.save(p);
session.flush();
session.save(c);
session.flush();

重要的是确保孩子推动这种关系。您可以通过设置inverse = "true"

来实现

答案 1 :(得分:0)

如果将Hibernate配置为级联给定关联的特定操作,则无法禁用它。因此,唯一想实现您想要的就是不要级联PERSIST和MERGE,并在saveWithCascade()方法中手动完成所有操作。