我有一个业务对象,它公开了想要控制的元素列表。
为此,我创建了一个带有侦听器的自定义 List 实现 ( CustomList ),每当添加/删除元素时都会收到通知。
public class MyClass {
private List<ItemClass> list;
public MyClass() {
this.list = new CustomList<ItemClass>();
}
public List<ItemClass> getList() {...}
public setList(List<ItemClass>) {...}
}
问题是,如果我想持久化这个对象,Hibernate 使用 setter 来设置列表及其自己的 List 实现,从而使我的 CostumList 行为短路。
我试图用这种方式欺骗二传手:
public setList(List<ItemClass> newList) {
this.list.clean():
this.list.addAll(newList);
}
但这也不起作用: Hibernate首先调用 setter,然后将一些元素添加到它自己的列表中。因此,我最终得到了一个空列表。
有没有办法让休眠使用我的自定义列表实现?还是在加载内容后填充它?
在此先感谢您的帮助。