我想添加/刪除沒有正在執行的語句,直到我創建或更新A.這是可能的嗎?
沒有辦法目前做到這一點。延遲加載的集合本身甚至不存儲項目,因此稍後的緩存更改的想法是不可能的。
你可以這樣做你自己不過。您可以保留實體中的項目列表,然後覆蓋dao.create(...)
和dao.update(...)
方法,以便在特殊集合中存在任何緩存項目時調用collection.addAll(...)
。
private List<Item> foreignItemsToAdd;
...
private void addForeignItem(Item item) {
if (foreignItemsToAdd == null) {
foreignItemsToAdd = new ArrayList<Item>();
}
}
然後道會碰到這樣的:
@Override
public int create(ParentItem parent) throws SQLException {
if (parent.getForeignItemsToAdd() != null) {
parent.getForeignItems().addAll(parent.getForeignItemsToAdd());
}
return super.create(parent);
}