Java 冬眠赢了';更新子实体时不更新它';s子实体

Java 冬眠赢了';更新子实体时不更新它';s子实体,java,spring,hibernate,Java,Spring,Hibernate,我正在使用hibernate和OracleDB以及Java11,如果这很重要的话 我得到了一个触发器,它将更新我的父表和子表中的一个单元格,该单元格将在更新表时触发 我遇到了这样一个问题:当我更新我的孙子实体时,它不会更新我的子实体,但会更新我的父实体 我希望hibernate更新已更改实体的行及其每个祖先 我的代码中的所有更新都是在父实体上进行的。这意味着,如果我想更改孙子的名字,我将从数据库中查询我的父项,我将更改想要的字段,并使用saveAndFlush保存我的新实体 我的代码: 类父类{

我正在使用hibernate和OracleDB以及Java11,如果这很重要的话

我得到了一个触发器,它将更新我的
父表
子表
中的一个单元格,该单元格将在更新表时触发

我遇到了这样一个问题:当我更新我的
孙子
实体时,它不会更新我的
实体,但会更新我的
实体

我希望hibernate更新已更改实体的行及其每个祖先

我的代码中的所有更新都是在父实体上进行的。这意味着,如果我想更改
孙子
的名字,我将从数据库中查询我的
父项
,我将更改想要的字段,并使用
saveAndFlush
保存我的新实体

我的代码:

类父类{
@身份证
@基因。。。
私人长id;
@OneToMany(fetch=FetchType.EAGER,cascade=cascade.ALL,orphan=true)
@JoinColumn(name=“parent\u id”,nullable=false)
@Fetch(FetchMode.SUBSELECT)
私人名单儿童;
}
班童{
@身份证
@基因。。。
私人长id;
@OneToMany(fetch=FetchType.EAGER,cascade=cascade.ALL,orphan=true)
@JoinColumn(name=“child\u id”)
@Fetch(FetchMode.SUBSELECT)
private List grands=new ArrayList();
@OneToOne(fetch=FetchType.EAGER,cascade=cascade.ALL,orphan=true)
@JoinColumn(name=“配偶id”,referencedColumnName)
私人配偶;
}
班孙{
@身份证
@基因。。。
私人长id;
字符串名;
}
当我更新
孙子
配偶
时,它将触发
触发器,但不会触发
触发器! 我想让它触发更新的实体,它的所有祖先都触发(孙子没有触发器)

我在网上搜索了两天,没有找到有效的东西。我试图在
孙子
配偶
上创建一个新触发器,但它在数据库中抛出了一个异常,因为“检测到并回滚了活动的自治事务”

谢谢:)