在一个CrudPanel中,我需要更新一些项目(不是通过CRUD对话框)。像这样:
@Transactional
...
instance.setSomeAttribute(newValue);
return savedInstance = instanceRepository.save(instance);
更新后在dataProvider上调用refreshAll会产生警告Got an RPC for non-existent node: xxxx
。而且我想如果只更改了一个项目,刷新所有项目的成本会有点高。
调用另一端的特定刷新项refreshItem(instance)
,得到Object of class [...MenuItem] with identifier [xxxx]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)
我也试图通过newInstance
refreshItem,相同的结果。
谁能指出如何进行?
检查equals
和hashCode
是否包含在调用refreshItem
时可能已更改的字段。