gpt4 book ai didi

java - 使用 Hibernate,拦截器接收与当前值和先前值相同的集合对象,如何获取真实的当前值和先前值?

转载 作者:行者123 更新时间:2023-11-30 09:56:28 26 4
gpt4 key购买 nike

我有一个用于 Hibernate 托管对象的拦截器。 File 和 Customer 表有一个中间表 (FileCustomer),代表两者之间的多对多关系。这是在 Hibernate 中由 File 类管理的。

@OneToMany(mappedBy = "file", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private List<FileCustomer> fileCustomers= new ArrayList<FileCustomer>();

我们更改 File 对象,包括替换一些 FileCustomer 对象(但不更改底层 Customer 对象)。

当调用 onFlushDirty 时,File 更新包含 File 对象的更改属性,一切正常。但是,包含 FileCustomer 对象列表的属性集合具有相同的先前值和当前值。

我错过了什么吗?我如何才能访问集合属性的旧值和新值?

最佳答案

检查这个post它会给您获取两个对象的想法,基本上您可以将 FileCustomer 存储在 preFlush 方法中,因此您可以将 onFlushDirty 中的集合与它进行比较。

关于java - 使用 Hibernate,拦截器接收与当前值和先前值相同的集合对象,如何获取真实的当前值和先前值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2340167/

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