【发布时间】:2015-11-23 11:49:49
【问题描述】:
我正在使用 Spring Boot 和 Spring Data。
在Service层,最好是插入记录,通过唯一键捕获“已插入”异常,而不是将其转换为业务异常或使用存储库查找记录,而不是抛出业务直接异常?
【问题讨论】:
-
最好从客户那里抽象出详细的原因。捕获一些数据库异常后,最好使用适当的消息抛出自定义异常
标签: java spring spring-mvc spring-data
我正在使用 Spring Boot 和 Spring Data。
在Service层,最好是插入记录,通过唯一键捕获“已插入”异常,而不是将其转换为业务异常或使用存储库查找记录,而不是抛出业务直接异常?
【问题讨论】:
标签: java spring spring-mvc spring-data
数据库 PK 是保持唯一性约束的最佳方法,如果您尝试查询和检查 PK 的方法,那么您可能会进入竞争条件,它将通过唯一性检查但插入失败,因此应该抛出任何 SQL 异常被处理。 所以最好通过 Exception 来处理并转化为完全业务错误的意思。
【讨论】: