1

onSave() 事件在实体保存之前发生,因此实体没有它的 id。保存后有什么方法可以获取实体ID?

4

2 回答 2

0

就我而言,我需要填写实体。当我们将实体添加到集合(例如,HashSet)时,该实体会在拦截器生命周期中改变自己的状态。所以,我只是将实体添加到 HashSet,然后在 afterTransactionCompletion() 中从 HashSet 中获取实体。实体已完全填充并具有 ID。

于 2013-07-11T03:03:01.753 回答
0

根据 EmptyInterceptor 的 JavaDocs,onSave 方法接收“id”作为参数。见这里:http ://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/EmptyInterceptor.html

因此,您可以使用该 id 值。

我假设您已经创建了类似于此处解释的方式的拦截器:http: //docs.jboss.org/hibernate/orm/3.3/reference/en/html/events.html

于 2013-07-06T14:46:42.417 回答