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

标签 java spring jpa exception

我是 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/

相关文章:

java - 如何使序列化类的输出更有效率?

Java Swing 用鼠标点击和拖动画线

java - 禁止 Spring 接受 POST 参数作为查询参数

java - Spring - 只允许查询字符串中的特定参数,否则会抛出错误

JAVA JPA - 保留项目中所有对象的常规解决方案

java - 如果我们无法泛化方法参数,我们是否需要接口(interface)/契约

java - 添加鼠标监听器后无法单击选项卡

java - Spring MVC 中重定向到外部 URl

当并非所有子类型都有自己的表时,Hibernate、JPA、连接表继承导致循环依赖错误

java - 如何创建 JPA 查询以按远程引用数量的降序返回对象?