Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Hibernate,拦截器接收与current和previous相同的集合对象,如何获取真实的current和previous值?_Java_Hibernate - Fatal编程技术网

Java 使用Hibernate,拦截器接收与current和previous相同的集合对象,如何获取真实的current和previous值?

Java 使用Hibernate,拦截器接收与current和previous相同的集合对象,如何获取真实的current和previous值?,java,hibernate,Java,Hibernate,我有一个Hibernate托管对象的拦截器。File和Customer表有一个中间表(FileCustomer),它表示两者之间的多对多关系。这在Hibernate中由File类管理 @OneToMany(mappedBy = "file", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER) @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN) private Li

我有一个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>();
@OneToMany(mappedBy=“file”,cascade={CascadeType.ALL},fetch=FetchType.EAGER)
@Cascade(org.hibernate.annotations.CascadeType.DELETE\u孤儿)
private List fileCustomers=new ArrayList();
我们更改文件对象,包括替换一些FileCustomer对象(但不更改底层Customer对象)

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


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

选中此选项,您将了解如何获取这两个对象,基本上您可以将FileCustomer存储在preFlush方法中,因此您可以将onFlushDirty中的集合与之进行比较。

链接已断开。请分享文章标题或谷歌搜索查询;