我有一個業務對象,公開了一個想要控制的元素列表。強制Hibernate使用我的自定義列表實現
爲此,我已創建自定義列表實現(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 bahavior。
我曾嘗試與二傳手作弊,這種方式:
public setList(List<ItemClass> newList) {
this.list.clean():
this.list.addAll(newList);
}
但是,這並不工作之一: 休眠首先調用setter方法,然後添加一些元素自身的列表。因此,我最終會在我身邊列出一個空白列表。
有沒有一種方法可以讓hibernate使用我的自定義列表實現?或者在加載內容後填寫它?
在此先感謝您的幫助。
裝飾者不能跟蹤底層列表的更新,OP提到他們試圖完成的更新。 – millimoose
但是,hibernate仍然會繼續添加元素到自己的列表(newList)中,而不會通知我。 當他完成填充內容時,我可以收到通知,這樣我可以親自啓動這些第一個元素嗎? –
@millimoose聽起來你是對的。我會用另一個建議來編輯它。不過,我仍然建議它作爲裝飾者工作。 – rvcoutinho