如何解决使用JPA绕过“找不到实体”错误
您可以将@NotFound批注与值一起使用NotFoundAction.IGnorE
,如果不存在关联的实体,则它将返回null。
请注意:如果在集合中使用它,而hibernate找不到条目之一,它将在集合中添加一个空值,这很烦人。为避免这种情况,您可以将集合包装在跳过空值的集合中。
解决方法
有时很难清除(或存在性能问题)删除对实体的所有引用。
例如,我有一个Person对象,它与另一个Person对象有关系。
当我删除一个Person时,我不想删除她可以拥有的所有关系,只是因为有时此Person对象不知道在何处引用了它。因此,如果我想清除所有引用,则必须执行额外的sql工作,这可能会导致性能问题。
在理想的世界中,我想删除Person对象,并且当另一个Person对这个Person进行引用时(因为它在其关系中具有其ID),只需返回null即可。
事实是JPA抱怨
javax.persistence.EntityNotFoundException: No row with the given identifier exists
有没有一种方法可以强制JPA返回空引用而不是这种情况下的异常?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。