推荐的处理spring hibernate SQL错误的方法

时间:2018-06-13 21:12:53

标签: java hibernate spring-boot

我在春天的控制器中有一个后端点,看起来像这样

@Autowired
private BookRepository bookRepository;

@PostMapping(path="/book")
public @ResponseBody BookEntity addBook(@RequestBody BookEntity bookEntity)
{
    return this.bookRepository.save(bookEntity);
}

现在,如果提交了无效的json数据并且调用了save函数,我的控制台将输出错误,例如h.engine.jdbc.spi.SqlExceptionHelper : Duplicate entry '1091209' for key 'isbn'

用户将看到一个非用户友好的api响应。

这带来的另一个问题似乎是跳过auto_incremented id,例如我去了1,2,4,因为第3次api呼叫是失败的api呼叫而跳过3次。

处理上述情况的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

您可以定义自己的错误处理程序,该处理程序扩展 ResponseEntityExceptionHandler 并捕获数据库特定的异常。这是一个代码......

<?php

$a = 1000255869;
echo $a;//output - 1000255869
$a = number_format($a);
echo $a;//output - 1,000,255,869

?>