EntityNotFoundException

EntityNotFoundException

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发生了。
我究竟做错了什么?

java - 无法从Hibernate捕获异常-LMLPHP

最佳答案

你错过了


  首次访问实例状态时引发EntityNotFoundException


您不会在代码中访问实体状态。

调试器访问实体以显示其属性。

getReference()不是检查实体存在的合适方法。

您可以使用以下内容(需要为JPA进行重写):
Hibernate: check if object exists

关于java - 无法从Hibernate捕获异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43889207/

10-09 19:59