处理JPA EntityManager find()、remove()和persist()方法时出错
我正在使用EclipseLink学习JPA处理JPA EntityManager find()、remove()和persist()方法时出错,jpa,find,entitymanager,persist,Jpa,Find,Entitymanager,Persist,我正在使用EclipseLink学习JPA 我搜索了很多,但没有找到任何答案 我的问题是,当我们使用EntityManagerfind(),remove(),persist()方法时,我们如何确保这些方法按预期工作 例如,如果persist()保留了一行,如果插入操作由于任何原因没有发生,它将返回任何错误 类似地,如果find()在数据库中未找到任何数据,或者remove()未找到要删除的行,或者由于约束而未删除 我们如何使用异常处理来处理这些场景?典型的用例是在try/catch块中运行这些方
我搜索了很多,但没有找到任何答案
我的问题是,当我们使用EntityManager
find()
,remove()
,persist()
方法时,我们如何确保这些方法按预期工作
例如,如果persist()
保留了一行,如果插入操作由于任何原因没有发生,它将返回任何错误
类似地,如果find()
在数据库中未找到任何数据,或者remove()
未找到要删除的行,或者由于约束而未删除
我们如何使用异常处理来处理这些场景?典型的用例是在try/catch块中运行这些方法,您可以:
公开交易
运行你的代码
提交事务
如果代码中引发异常,则回滚事务
正如Neil已经提到的,EclipseLink方法的任何问题都将被视为异常(在本例中为PersistenceException,但我将简单地捕获常见异常,甚至是可丢弃的异常,因为可能发生的不仅仅是持久性问题,而且在正确处理事务后,您始终可以将它们重新提交到代码的上层)
这很好。您可以从remove/persist捕获PersistenceException,并检查find的返回。。。根据他们的javadocs