java - 实体上的观察者并不总是有效

标签 java spring hibernate spring-data

我有一个 spring boot 和 spring 数据设置 (@Data)。当一个实体的属性更改时,我需要执行一些操作。我正在尝试使用观察者模式,所以当我们从代码中调用该属性的 setter 时,我在其中添加了 stateChanged。您认为这会按预期工作,还是 spring 在幕后调用 setter ?

最佳答案

Spring绝对不是时不时调用这些setter。

要在实体更新保存在数据库中之前立即执行您的自定义代码,您可以在实体类中的方法上使用@PreUpdate 注释,或者您可以使用此方法拥有更高级别的抽象实体类,如果您的@ PreUpdate 代码相同。

@PreUpdate
public void onPreUpdate() {
    //your custom code here
}

这样做您可以从您的 setter 中删除 stateChanged 调用。

关于java - 实体上的观察者并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43340161/

相关文章:

java - 多 react 器设计 - 我是否试图重新发明 Netty?

java - 当读取和设置简单引用已经是原子操作时,为什么要使用 AtomicRefernce

spring - 翻译约束检查 spring jpa 中的任一列不为空

java - 与编码相关的数据库连接错误

java - 在 Spring Boot 项目中将 HikariCP 与 Hibernate 结合使用的更好方法

java - 配置单元/ElasticMapreduce : How bring JsonSerDe to ignore malformed JSON?

java - 如何远程访问@Stateless @LocalBean

java - 在 Spring 选择的 Where 中使用 'in' 而不是 '=' 的异常

java - spring 框架(Java)中是否有相当于 phpinfo 的东西?

java - 我可以从一个 EntityManagerFactory 创建多个数据库连接吗?