Java / Hibernate在保存更新或删除后调用存储过程



如何在插入、更新或删除对象后调用存储过程?

我的对象如下所示:

@Entity
public class a {
private String b;
private String c;
public a() {
super();
}
// getter setter
@PostPersist
@PostUpdate
@PostRemove
private void callProcedure() {
// ???
}
}

最好的方法是什么?

在 Java 应用程序中,不应在实体模型中调用业务逻辑。您可以在@PrePersist@PreUpdate实体中设置一些值,例如:

/**
* Sets createdAt before insert
*/
@PrePersist
public void setCreationDate() {
this.createdAt = new Date();
}
/**
* Sets updatedAt before update
*/
@PreUpdate
public void setChangeDate() {
this.updatedAt = new Date();
}

或者,可以在 @PostPersist 方法中获取生成的主键值。但存储过程处理属于您的服务。服务应调用存储过程并获取结果以供进一步处理。不能在服务中使用@PostPersist、@PostUpdate和@PostRemove注释,但可以在服务中编写 afterSave((、afterRemove(( 方法来调用存储过程并处理被调用存储过程的结果。

查看此链接以获取示例:如何在 JPA 中调用存储过程

最新更新