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()返回的代理的状态时,会引发此异常。