我有一个场景,我有: 父类Parent,具有一些简单属性(int,String等)和2组子项。 设置childrenA; 设置childrenB;
我可以为父simpleSave(父p)创建一个保存函数,它将仅保存/仅保存数据库中的父属性,并具有一个将级联到其子级的函数saveWithCascade(Parent p)吗?
稍后编辑:通过保存我实际上意味着更新。因为如果我知道只有一个属性或一组改变了,我不希望hibernate在其他人上做很多选择只是为了检查他们是否改变了
答案 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()
方法中手动完成所有操作。