【发布时间】:2019-03-19 15:43:22
【问题描述】:
在我的应用程序中,我正在通过 Hibernate 更新一个表,并且该表有一个 UPDATE 触发器。 我的问题是,我是否需要提交发生此更新操作的事务(Spring Transaction), 触发触发器?
我正在使用 Spring 事务和 Oracle 数据库
谢谢。
【问题讨论】:
标签: java database hibernate transactions spring-transactions
在我的应用程序中,我正在通过 Hibernate 更新一个表,并且该表有一个 UPDATE 触发器。 我的问题是,我是否需要提交发生此更新操作的事务(Spring Transaction), 触发触发器?
我正在使用 Spring 事务和 Oracle 数据库
谢谢。
【问题讨论】:
标签: java database hibernate transactions spring-transactions
是的,当数据到达磁盘时会触发数据库级触发器。这只发生在提交完成时。
【讨论】:
不,但是 Hibernate 经常等待事务结束来运行所有 SQL 更新,所以看起来可能是这样。
尝试在更新实体后使用EntityManager#flush(JPA api)或JpaRepository#flush(来自 Spring Data)或使用JpaRepository#saveAndFlush 刷新您的更改。
【讨论】: