首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >事件侦听器-实体列级侦听器

事件侦听器-实体列级侦听器
EN

Stack Overflow用户
提问于 2019-03-01 00:45:12
回答 1查看 480关注 0票数 0

我是事件侦听器的新手,我想知道是否有任何解决方案可以只跟踪列级值的变化,而不是编写一个事件侦听器来查看它是否是Book的实例,以及图书的价格是否发生了变化。

例如:

代码语言:javascript
复制
@Entity
public class Book {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", updatable = false, nullable = false)
    private Long id;

    @Column
    private LocalDate publishingDate;

    @Column
    private Double price;

}

在上面的表格中,我只想知道图书的价格是否发生了任何变化,而不是每次都会通知监听器实体的任何更新。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-01 04:08:25

要跟踪字段的更改,您需要记住旧值并将其与新值进行比较。引入新的字段@Transient Double previousPrice。在带有price值的@PostLoad回调方法中初始化它。您可以通过比较中的pricepreviousPrice来检查它是否已更改

  1. @PreUpdate方法(实体内部)调用setPrice方法时的
  2. (使用便捷方法的entity)
  3. anytime内部book.isPriceChanged(){ return price!=null && price.equals(previousPrice);} (实体外部)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54930491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档