【问题标题】:Way to get id of saved entity in Hibernate Interceptor在 Hibernate 拦截器中获取已保存实体 id 的方法
【发布时间】:2013-07-04 07:45:55
【问题描述】:

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

【问题讨论】:

    标签: java hibernate interceptor


    【解决方案1】:

    根据 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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2010-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-03
        • 1970-01-01
        • 2018-05-21
        • 2012-09-26
        • 2012-06-20
        相关资源
        最近更新 更多