如果保存功能不成功,Spring JPA会抛出错误吗?

Eri*_*fer 6 java spring spring-data-jpa

我想知道Spring JPA在尝试将对象保存到数据库时是否抛出了什么类型的错误.JpaRepository.java说要查看org.springframework.data.repository.CrudRepository#save.但是,我似乎无法找到抛出什么类型的错误,如果有的话.如果没有抛出错误,我该如何检查保存是否成功?

任何见解都会非常感激.

Oli*_*ohm 10

Spring Data Repositories抛出Spring的DataAccessException结构,允许您根据某些错误场景捕获异常.例如DataIntegrityViolationException,抛出a 表示外键违规.

原始异常包含在抛出的异常中,以便您可以在需要时访问它.通过抛出与持久性技术无关的异常,存储库客户端不会受到技术特定异常(例如,Hibernate,JPA,MongoDB)的污染,因此您可以在不破坏客户端的情况下交换存储库实现.


Ser*_*eyB 3

它应该抛出一个org.springframework.orm.jpa.JpaSystemException. 此外,CrudRepostiroy.save还会返回给您的实体的一个新实例,如果您返回一个实体,则这是它已保存的好兆头。