覆盖 spring 数据保存方法

Override spring data save method

我创建了一个 BaseRepository,它扩展了 CrudRepository 并带有 @NoRepositoryBean 标记。我所有其他存储库扩展 BaseRepository.

如何覆盖 BaseRepository 中的 save 方法以获得自定义错误消息?例如,我需要捕获所有 DataIntegrityViolationException 以在前端显示一些正确的消息。任何帮助表示赞赏。

更新

例如,如果您创建 Spring 个端点 (@Endpoint),那么您可以创建一个 class 实现 org.springframework.ws.server.EndpointInterceptor,您可以在其中监控所有流量。是否有类似的 class 可以监控所有与数据相关的流量?

如我评论中所述,覆盖 'save' 不会实现您的目标。 JPA 可能会在您的所有代码中抛出异常。这是JPA的问题之一。

我想您可以覆盖 Spring 的一些核心方法来实现您的目标,但实际上 Spring 并不是这样工作的。

相反,您基本上注册了您的异常处理,它会根据需要由 Spring 调用。

an article about this by Baeldung,看起来很有前途,被Google评价很高。