Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
处理JPA EntityManager find()、remove()和persist()方法时出错_Jpa_Find_Entitymanager_Persist - Fatal编程技术网

处理JPA EntityManager find()、remove()和persist()方法时出错

处理JPA EntityManager find()、remove()和persist()方法时出错,jpa,find,entitymanager,persist,Jpa,Find,Entitymanager,Persist,我正在使用EclipseLink学习JPA 我搜索了很多,但没有找到任何答案 我的问题是,当我们使用EntityManagerfind(),remove(),persist()方法时,我们如何确保这些方法按预期工作 例如,如果persist()保留了一行,如果插入操作由于任何原因没有发生,它将返回任何错误 类似地,如果find()在数据库中未找到任何数据,或者remove()未找到要删除的行,或者由于约束而未删除 我们如何使用异常处理来处理这些场景?典型的用例是在try/catch块中运行这些方

我正在使用EclipseLink学习JPA

我搜索了很多,但没有找到任何答案

我的问题是,当我们使用
EntityManager
find()
remove()
persist()
方法时,我们如何确保这些方法按预期工作

例如,如果
persist()
保留了一行,如果插入操作由于任何原因没有发生,它将返回任何错误

类似地,如果
find()
在数据库中未找到任何数据,或者
remove()
未找到要删除的行,或者由于约束而未删除


我们如何使用异常处理来处理这些场景?

典型的用例是在try/catch块中运行这些方法,您可以:

  • 公开交易
  • 运行你的代码
  • 提交事务
  • 如果代码中引发异常,则回滚事务
  • 正如Neil已经提到的,EclipseLink方法的任何问题都将被视为异常(在本例中为PersistenceException,但我将简单地捕获常见异常,甚至是可丢弃的异常,因为可能发生的不仅仅是持久性问题,而且在正确处理事务后,您始终可以将它们重新提交到代码的上层)


    这很好。

    您可以从remove/persist捕获PersistenceException,并检查find的返回。。。根据他们的javadocs