Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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
Java 如果保存函数不成功,Spring JPA是否会抛出错误?_Java_Spring_Spring Data Jpa - Fatal编程技术网

Java 如果保存函数不成功,Spring JPA是否会抛出错误?

Java 如果保存函数不成功,Spring JPA是否会抛出错误?,java,spring,spring-data-jpa,Java,Spring,Spring Data Jpa,我想知道SpringJPA在试图将对象保存到数据库时是否抛出了错误,以及抛出了什么类型的错误。java要求查看org.springframework.data.repository.crudepository#save。然而,我似乎无法找到抛出的错误类型(如果有的话)。如果没有抛出错误,如何检查保存是否成功 任何洞察都将不胜感激。它应该抛出一个org.springframework.orm.jpa.JpaSystemException。另外,crudrepostroy.save会返回给它的实体的

我想知道SpringJPA在试图将对象保存到数据库时是否抛出了错误,以及抛出了什么类型的错误。java要求查看org.springframework.data.repository.crudepository#save。然而,我似乎无法找到抛出的错误类型(如果有的话)。如果没有抛出错误,如何检查保存是否成功


任何洞察都将不胜感激。

它应该抛出一个
org.springframework.orm.jpa.JpaSystemException
。另外,
crudrepostroy.save
会返回给它的实体的一个新实例,如果你得到了一个实例,这是它已保存的一个好迹象。

crudrepostroy.save
具有返回类型
已保存的实体

<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
S保存(S实体)
保存给定的实体。将返回的实例用于进一步的操作,因为保存操作可能已经完全更改了实体实例。
参数:
实体-
返回:
保存的实体

Spring数据存储库抛出Spring的
DataAccessException
s,其结构允许您捕获基于特定错误场景的异常。例如,抛出一个
DataIntegrityViolationException
,以指示外键冲突


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

抛出的异常很可能取决于原因。例如,可能存在乐观锁期望、SQLException。至少在出现问题时会有例外。