Java 冬眠2个函数:simpleSave(),saveWithCascade()。能做到吗?怎么做?

Java 冬眠2个函数:simpleSave(),saveWithCascade()。能做到吗?怎么做?,java,hibernate,cascade,Java,Hibernate,Cascade,我有一个场景,其中我有: 父类父类,具有一些简单属性(int、String等)和两组子类。 设置childrenA; 设置儿童b 我是否可以为父simpleSave(父p)创建一个保存函数,该函数将只保存/持久化数据库中的父属性,并具有一个将级联到其子级的函数saveWithCascade(父p) 后期编辑:保存实际上是指更新。因为如果我知道只有一个属性或集合发生了更改,我不希望hibernate对其他属性或集合进行大量选择,只是为了检查它们是否发生了更改。假设您已经正确定义了hibernate

我有一个场景,其中我有: 父类父类,具有一些简单属性(int、String等)和两组子类。 设置childrenA; 设置儿童b

我是否可以为父simpleSave(父p)创建一个保存函数,该函数将只保存/持久化数据库中的父属性,并具有一个将级联到其子级的函数saveWithCascade(父p)


后期编辑:保存实际上是指更新。因为如果我知道只有一个属性或集合发生了更改,我不希望hibernate对其他属性或集合进行大量选择,只是为了检查它们是否发生了更改。假设您已经正确定义了hibernate映射。您可以调用
session.save(父级)

当你拯救一个孩子时,你可以用你的方法做一些类似的事情

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

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

来实现这一点。如果您将Hibernate配置为级联给定关联的特定操作,则无法禁用它。因此,要实现您想要的目标,唯一的办法是不要级联持久化和合并,而是在
saveWithCascade()
方法中手动执行所有操作。

如果它只是从父级到子级的单向关系呢?您不必做任何事情。默认情况下,reverse=“false”