ClientEntity clientEntity;
try {
clientEntity = entityManager.getReference(ClientEntity.class, clientId);
}
catch (EntityNotFoundException ex){
System.out.println("Wrong client id: there are no client with such id.");
return;
}
我发送了错误的参数值。在数据库中肯定没有这样的客户端(例如id = 6)。但是catch {}
没有用。
来自getReference
文档:
如果数据库中不存在请求的实例,则 实例状态为第一个时抛出EntityNotFoundException 访问。 (允许持久性提供程序运行时抛出 调用getReference时的EntityNotFoundException。)
但是在调试器中我们可以看到EntityNotFoundException
发生了。
我做错了什么?
答案 0 :(得分:4)
你错过了这个
首次访问实例状态时抛出EntityNotFoundException
您无法在代码中访问实体状态。
调试器访问实体以显示其属性。
getReference()
不是检查实体存在的合适方法。
你可以使用这样的东西(需要为JPA重写): Hibernate: check if object exists