gpt4 book ai didi

用于命名查询删除操作的 hibernate 实体监听器

转载 作者:行者123 更新时间:2023-12-01 01:06:37 27 4
gpt4 key购买 nike

对于我们的应用程序,我们需要使用 hibernate 实现触发器。我们可以找到的一个最佳解决方案是使用 Annotation 的 Entity listerner,因为我们需要监听特定的实体更改。
除了带有命名查询的删除之外,一切都运行良好,它不提供任何事件。
代码实现
** 实体** - 这里我们添加了监听器

@Entity
@EventListeners(EmployeeEventListener.class)
public class Employee {

@Id
private String uid;
@Basic
private Calendar lastUpdated;
实体监听器 ——
监听器在执行预期操作时占用修改后的实体
public class EmployeeEventListener {
@PrePersist
public void prePersist(Object object) {
Employee employee = (Employee)object;
employee.setUID(UIDGenerator.newUUI());
employee.setLastUpdated(Calendar.getInstance());
}
@PostUpdate
public void postUpdate(Object object) {
Employee employee = (Employee)object;
employee.setLastUpdated(Calendar.getInstance());
}
@PrePersist@PostUpdate当我在实体管理器上使用 save 或 saveorupdate 时效果很好。但是在执行删除命名查询时,我没有收到 @PreRemove 的事件和 @PostRemove我也想得到一个删除事件。

最佳答案

这是不可能的:The Interceptor interface provides callbacks from the session to the application并且通过 native SQL 删除的对象不会传递到 session ,因此不会运行回调

关于用于命名查询删除操作的 hibernate 实体监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18257539/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com