Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA EntityManger.find与EntityManger.getReference关于不存在的记录_Java_Jpa_Exception Handling_Nullpointerexception_Specifications - Fatal编程技术网

Java JPA EntityManger.find与EntityManger.getReference关于不存在的记录

Java JPA EntityManger.find与EntityManger.getReference关于不存在的记录,java,jpa,exception-handling,nullpointerexception,specifications,Java,Jpa,Exception Handling,Nullpointerexception,Specifications,您能否解释一下,如果实体不存在,为什么EntityManger.find返回null,但EntityManager.getReference根据JPA规范抛出异常 就我个人而言,我认为EntityManger.find-也应该引发异常,因为试图获取不存在的实体-表明客户端使用陈旧数据。getReference()如果实体不存在,则不会引发异常。它返回一个未初始化的代理,假设实体确实存在。第一次访问该状态时,代理被初始化,如果该实体不存在,则会引发异常。@JBNizet它引发:EntityNotF

您能否解释一下,如果实体不存在,为什么
EntityManger.find
返回
null
,但
EntityManager.getReference
根据
JPA
规范抛出异常


就我个人而言,我认为
EntityManger.find
-也应该引发异常,因为试图获取不存在的实体-表明客户端使用陈旧数据。

getReference()如果实体不存在,则不会引发异常。它返回一个未初始化的代理,假设实体确实存在。第一次访问该状态时,代理被初始化,如果该实体不存在,则会引发异常。@JBNizet它引发:EntityNotFoundException-如果无法访问该实体状态,java.lang.Object)getReference()不会引发此异常。稍后,当第一次访问getReference()返回的代理的状态时,会引发此异常。