我是否必须尝试捕获JpaRepository

时间:2014-06-02 09:44:19

标签: spring spring-data-jpa

我正在使用Spring Data JPA框架中的JpaRepository。我在下面有一段代码:

@Repository
public interface PresetFolderRepository extends JpaRepository<PresetFolder, Integer>{

    @Modifying
    @Transactional
    @Query("update PresetFolder pf set pf.parentId = :parentId where pf.id = :id")
    int updateParentId(@Param("id") int id, @Param("parentId") int parentId);
}

当我调用此方法时:

@Autowired PresetFolderRepository repo;
    repo.updateParentId(1,2);
public void test(){

我是否必须用try-catch包围它?如何知道自定义方法'updateParentId'是否具有try-catch实现?

谢谢!

编辑: 我担心的是,如果我的数据库发生故障,此方法是否会捕获异常。

2 个答案:

答案 0 :(得分:1)

如果出现问题,存储库将始终告诉您(即它们永远不会吞下异常)。如果是这种情况,您将始终获得运行时异常。

除了在调用堆栈的最顶层,您可能也不应该捕获这样的异常,在那里您可以向最终用户显示错误消息。

答案 1 :(得分:0)

不,你不需要它通过try-catch块包围。大多数Spring-Data存储库都会抛出运行时异常。关于您的问题,如果数据库关闭,则会生成运行时异常,您可以在控制器级别捕获它(如果您正在编写Web应用程序)。

如果在数据库关闭时执行测试用例,测试用例会为无法访问的主机抛出错误。