Hibernate PostInsertEventListener.requiresPostCommitHanding 是做什么的?

问题描述 投票:0回答:1

文档中说:

这个监听器是否需要注册事务后挂钩?

这是否意味着,如果我们返回

false
,监听器将在事务提交之前运行;如果我们返回
true
,监听器将在事务提交之后运行?

java hibernate
1个回答
4
投票

看来,当

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

但是,如果侦听器注册为

EventType.POST_COMMIT_INSERT
,则该方法实际上会被调用,并且如果它返回
true
,则侦听器将在提交事务后被调用。如果它返回
false
监听器将 不会被调用。

此外,如果侦听器的类型为

PostInsertEventListener

,则无论事务是否成功,都会调用 
onPostInsert
 方法。如果侦听器的类型为 
PostCommitInsertEventListener
,则仅在成功交易时才会调用 
onPostInsert
 方法。否则,将调用 
onPostInsertCommitFailed
 方法。

© www.soinside.com 2019 - 2024. All rights reserved.