spring - Spring + Hibernate:在更新条目时从存储库中选择
问题描述
我刚刚遇到了一个问题,我试图使用它的 id 从数据库中选择 (repo.findById(id)) 一个对象,同时它正在被更新(Hibernate 在 PreUpdateEventListener 和 PostUpdateEventListener 接口中的 onPreUpdate 和 onPostUpdate 方法),但它为我抛出了 NullPointerException。
如果我这样解释可能会更容易:
我有一个状态为“PENDING”的对象,如果它被更改为“CONFIRMED”,我想通过执行以下操作检查 onPreUpdate 方法中的先前状态:
@Override
public boolean onPreUpdate(PreUpdateEvent preUpdateEvent)
{
final Object entity = preUpdateEvent.getEntity();
if (entity instanceof Status)
{
Status status = (Status) entity;
//Method below throws NullPointerException
Status statusFromRepo = statusRepo.findByStatusId(status.getStatusId());
}
return false;
}
但是由于 statusRepo 已经在数据库中更新这个对象,我不能在更新之前做任何事情来获取对象吗?PreUpdateEvent 包含将要保存在数据库中的已“更新”版本。
解决方案
推荐阅读
- c# - How to play multiple sounds at once in C#
- c# - Is NLog logging supported in UWP windows 10?
- c - GTK TreeViewColumn Titles Disappear
- javascript - Sinch call recording not working
- c++ - 从“已删除函数”中获取 xmemory 错误
- python - Python3从二进制文件中解码希腊字母
- java - 如何从 Jsoup 中的“a”标签中获取属性“href”?
- r - excel.link R 包强制 Excel 自动计算
- python - Print() 在带有 zip() 的“for”循环中不起作用
- reactjs - 如何将 Flow 类型与 Ant Design 表单集成?