Java 公共无效提交(){ this.getTransaction().commit(); } @凌驾 公众假期结束(){ debug(String.format(“实体管理器%s关闭调用”,this.id)); if(this.entityManager==null)返回; 布尔isActive=this.entityManager.getTransaction().isActive(); 如果(isActive | |只读){ logger.debug(String.format(“实体管理器%s事务处于活动状态,正在回滚”,this.id)); this.entityManager.getTransaction().rollback(); } this.entityManager.close(); }

Java 公共无效提交(){ this.getTransaction().commit(); } @凌驾 公众假期结束(){ debug(String.format(“实体管理器%s关闭调用”,this.id)); if(this.entityManager==null)返回; 布尔isActive=this.entityManager.getTransaction().isActive(); 如果(isActive | |只读){ logger.debug(String.format(“实体管理器%s事务处于活动状态,正在回滚”,this.id)); this.entityManager.getTransaction().rollback(); } this.entityManager.close(); },java,mysql,hibernate,triggers,Java,Mysql,Hibernate,Triggers,如对问题的评论所述,在我的案例中使用@DynamicUpdate工作。如对问题的评论所述,在我的案例中使用@DynamicUpdate工作。触发器不能触发,也不能禁用。检查(创建一些服务表并将所有触发器触发和新记录字段值保存到其中)-Hibernate可能会创建“抽象”记录,然后通过大量更新查询设置指定值…您是否也可以保存订单-实体?由于您(至少在此代码段中)没有更新/刷新订单实体中的值,订单实体的下一次写入可能会用实体的旧值覆盖触发器所做的更改。@Solarflare我们确实合并了订单实体,但

如对问题的评论所述,在我的案例中使用@DynamicUpdate工作。

如对问题的评论所述,在我的案例中使用@DynamicUpdate工作。

触发器不能触发,也不能禁用。检查(创建一些服务表并将所有触发器触发和新记录字段值保存到其中)-Hibernate可能会创建“抽象”记录,然后通过大量更新查询设置指定值…您是否也可以保存
订单
-实体?由于您(至少在此代码段中)没有更新/刷新订单实体中的值,订单实体的下一次写入可能会用实体的旧值覆盖触发器所做的更改。@Solarflare我们确实合并了订单实体,但在任何时候都不会修改Status(枚举)属性。这还会导致更改被覆盖的问题吗?@Akina触发器确实触发了,除了指出的语句外,所有语句似乎都有效。我选择它与被合并实体的字段相关,但它不会发生在任何地方。这取决于您的设置(参见示例)。您可能希望镜像触发器对singleStatusChange函数中的order实体所做的操作和/或在运行之前/之后刷新/刷新,具体取决于应用程序的其余部分/数据库更改的其他外部源/…触发器不能触发,也不能禁用。检查(创建一些服务表并将所有触发器触发和新记录字段值保存到其中)-Hibernate可能会创建“抽象”记录,然后通过大量更新查询设置指定值…您是否也可以保存
订单
-实体?由于您(至少在此代码段中)没有更新/刷新订单实体中的值,订单实体的下一次写入可能会用实体的旧值覆盖触发器所做的更改。@Solarflare我们确实合并了订单实体,但在任何时候都不会修改Status(枚举)属性。这还会导致更改被覆盖的问题吗?@Akina触发器确实触发了,除了指出的语句外,所有语句似乎都有效。我选择它与被合并实体的字段相关,但它不会发生在任何地方。这取决于您的设置(参见示例)。您可能希望镜像触发器对singleStatusChange函数中的order实体所做的操作和/或在运行之前/之后刷新/刷新,具体取决于应用程序的其余部分/其他外部数据库更改源/。。。