我想知道Spring JPA在尝试将对象保存到数据库时是否抛出了什么类型的错误。 JpaRepository.java说要查看org.springframework.data.repository.CrudRepository#save。但是,我似乎无法找到抛出什么类型的错误,如果有的话。如果没有抛出错误,我该如何检查保存是否成功?
非常感谢任何见解。
答案 0 :(得分:9)
Spring Data Repositories抛出Spring的DataAccessException
,它们的结构允许您根据某些错误场景捕获异常。例如。抛出DataIntegrityViolationException
表示外键违规。
原始异常包含在抛出的异常中,以便您可以在需要时访问它。通过抛出与持久性技术无关的异常,存储库客户端不会受到技术特定异常(例如Hibernate,JPA,MongoDB)的污染,因此您可以在不破坏客户端的情况下交换存储库实现。
答案 1 :(得分:1)
它应该抛出org.springframework.orm.jpa.JpaSystemException
。此外,CrudRepostiroy.save
会向您返回您提供给它的实体的新实例,如果您返回一个实例,则表明它已保存。
答案 2 :(得分:0)
CrudRepostiroy.save
的返回类型为the saved entity
<S extends T> S save(S entity)
Saves a given entity. Use the returned instance for further operations as the save operation might have changed the entity instance completely.
Parameters:
entity -
Returns:
the saved entity