在文档 [1] 中它说:
此侦听器是否需要在事务挂钩之后注册?
这是否意味着,如果我们返回<code>false</code>,那么侦听器将在事务提交之前运行,而如果我们返回>code>true</code<,则侦听器将运行之后?
[1]https://docs.jboss.org/hibernate/orm/5.4/javadocs/org/hibernate/event/spi/PostInsertEventListener.html
似乎,当PostInsertEventListener
注册为EventType.POST_INSERT
时,根本不会调用该方法,并且总是在提交事务之前执行侦听器。
但是,如果侦听器注册为EventType.POST_COMMIT_INSERT
,则实际调用该方法,如果它返回true
,则在提交事务后调用侦听器。如果它返回false
,则根本不会调用侦听器。
此外,如果侦听器的类型为< code > postinserteventlister ,则无论事务是否成功,都将调用< code>onPostInsert方法。如果侦听器的类型为< code > PostCommitInsertEventListener ,则将只为成功的事务调用< code>onPostInsert方法。否则,将调用< code > onPostInsertCommitFailed 方法。