提问者:小点点

Hibernate PostInsertEventListener.requiresPostCommitHanding做什么?


在文档 [1] 中它说:

此侦听器是否需要在事务挂钩之后注册?

这是否意味着,如果我们返回<code>false</code>,那么侦听器将在事务提交之前运行,而如果我们返回>code>true</code<,则侦听器将运行之后?

[1]https://docs.jboss.org/hibernate/orm/5.4/javadocs/org/hibernate/event/spi/PostInsertEventListener.html


共1个答案

匿名用户

似乎,当PostInsertEventListener注册为EventType.POST_INSERT时,根本不会调用该方法,并且总是在提交事务之前执行侦听器。

但是,如果侦听器注册为EventType.POST_COMMIT_INSERT,则实际调用该方法,如果它返回true,则在提交事务后调用侦听器。如果它返回false,则根本不会调用侦听器。

此外,如果侦听器的类型为< code > postinserteventlister ,则无论事务是否成功,都将调用< code>onPostInsert方法。如果侦听器的类型为< code > PostCommitInsertEventListener ,则将只为成功的事务调用< code>onPostInsert方法。否则,将调用< code > onPostInsertCommitFailed 方法。