Java Hibernate PostInsertEventListeners-使用与插入相同的事务?
我有一些hibernate代码,它执行对数据库的插入,插入完成后会触发一个定制的PostInsertEventListener。(本质上是确保其他记录得到适当更新的触发器) 我需要做的是让EventListener中的代码使用与原始插入相同的事务,这样,如果插入没有成功提交,EventListener就不会启动 我听说您可以使用Java Hibernate PostInsertEventListeners-使用与插入相同的事务?,java,hibernate,transactions,Java,Hibernate,Transactions,我有一些hibernate代码,它执行对数据库的插入,插入完成后会触发一个定制的PostInsertEventListener。(本质上是确保其他记录得到适当更新的触发器) 我需要做的是让EventListener中的代码使用与原始插入相同的事务,这样,如果插入没有成功提交,EventListener就不会启动 我听说您可以使用javax.transaction.Syncronization和Hibernate的transaction.registerSyncronization()方法来实现这
javax.transaction.Syncronization
和Hibernate的transaction.registerSyncronization()
方法来实现这一点,但我在任何地方都找不到使用示例
非常感谢您的帮助。我认为这是不可能的 如果我理解的话,您只想在事务成功完成(提交)的情况下执行一些代码。但是,如果事务已提交,则无法在同一事务中执行其他操作,因为它已结束 但是,您可以使用在事务中调用的PreInsertEventListener(在提交之前)。如果事务失败,事件侦听器将触发事件(因为在提交之前我们不知道事务是否会成功),但是如果事务失败,您在侦听器中修改的任何内容都不会存储在数据库中。检查侦听器列表 不过有一个警告。您不应该在侦听器中进行太多的数据修改。特别是,您不应该触发集合的任何延迟加载