gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:53:14 27 4
gpt4 key购买 nike

我是 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>{
.
.
.
}

我从我的 Controller 层使用的服务层调用该类。我想知道这个操作是否成功会很高兴,这样我就可以通过层传输异常直到我的前端并向用户抛出一条消息。但是,当表为空时,当我使用 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,您可以捕获该异常以查看出了什么问题。

关于java - Spring Data JPA 错误处理的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56168606/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com