从异常消息spring启动中获取id



大家好,祝大家一切顺利。我正在捕捉一个异常(DataIntegrityViolationException),其中指定的id不能被删除,因为它仍然在父实体中。我想知道是否有任何方法可以从捕获的异常中获得指定的id。

DataIntegrityViolationException只是包装底层JDBC驱动程序抛出的异常。因此,这取决于JDBC驱动程序是否在抛出的异常中提供了此类信息。但是根据我的经验,大多数JDBC驱动程序不会直接从异常中提供违反的ID。它只是提供某种错误代码或错误消息。您可以尝试看看是否可以,并且从中解析违反的ID是否有意义。

查找违反的ID的更可靠的方法是在删除之前根据业务域自己检查它,而不是依赖于抛出的异常。在这种情况下,在实际删除子实体之前,您可以简单地找出是否存在子实体的父实体。

要获取JDBC驱动程序从DataIntegrityViolationException抛出的异常(即根本原因异常),我倾向于使用Guava库来获取它。

最新更新