繁体   English   中英

Spring Data JPA错误处理的最佳实践是什么

[英]What's best practice in Spring Data JPA Error handling

我是spring和Spring Data领域的新手。

我建立了一个用户和权限管理系统,其中一个用户可以授予和删除另一个用户的权限。

我已经在文档中进行了挖掘,但是我不知道如何处理只想在表中插入或处理数据的查询。

在docs查询返回类型表中,我找不到状态或状态报告对象之类的东西。

我正在寻找的一种模式可以使我控制操作是否成功。 现在我正在使用基元。 当一切顺利时,我得到“ 1”,但是当我查询一个空表时,我得到“ 0”。 所以我需要更多细节。

感谢您的指导和分享您的经验。

编辑:这是一个代码示例:

@Transactional
@Modifying
@Query(value = "DELETE FROM permissions WHERE producerId=:producerId AND comsumerId=:consumerId", nativeQuery = true)
void clearAllPermissions(@Param("producerId") Long producerId,@Param("consumerId") Long consumerId);

该方法由我的存储库类提供。

    @Repository
    public interface PermissionsRepository extends JpaRepository<ProducerConsumerPermissions, Integer>{
.
.
.
}

我从控制器层使用的服务层调用该类。 我想知道此操作是否成功是很高兴的,这样我就可以将整个层的肽段运输到前端,并向用户发送消息。 但是,当表为空时,我将Integer用作返回类型时会得到false值。

使您的方法返回int然后您知道是否删除了任何记录。

@Transactional
@Modifying
@Query(value = "DELETE FROM permissions WHERE producerId=:producerId AND comsumerId=:consumerId", nativeQuery = true)
int clearAllPermissions(@Param("producerId") Long producerId,@Param("consumerId") Long consumerId);

如果有问题,无论如何都会抛出异常。 Spring Data抛出DataAccessException ,您可以捕获它来查看发生了什么问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM