我有一个使用 Spring data JPA 和 hibernate envers 进行数据库审计的应用程序。由于 R2DBC 还不支持审计,是否可以在单个应用程序中结合使用两者?
如果是,计划使用 Spring Data JPA 进行插入、更新和删除操作,这样所有的 DB 审计都将由 hibernate 环境处理。并使用 R2DBC 进行反应式非阻塞 API 来读取数据。
如果没有,是否有关于如何同时实现反应式 API 和审计的建议?
我有一个使用 Spring data JPA 和 hibernate envers 进行数据库审计的应用程序。由于 R2DBC 还不支持审计,是否可以在单个应用程序中结合使用两者?
如果是,计划使用 Spring Data JPA 进行插入、更新和删除操作,这样所有的 DB 审计都将由 hibernate 环境处理。并使用 R2DBC 进行反应式非阻塞 API 来读取数据。
如果没有,是否有关于如何同时实现反应式 API 和审计的建议?
Spring 提供了简单的 Auditing via @EnableR2dbcAuditing
,请查看我的示例。
在反应式应用程序中混合 JPA 也是可能的,我有一个示例来演示在反应式应用程序中运行 JPA,但没有在其中添加 r2dbc。
对于您的计划,更好的解决方案是在数据库拓扑上应用 cqrs 模式,为您的应用程序使用数据库集群。
更新:我创建了一个示例来演示JPA 和 R2dbc 在单个 webflux 应用程序中的共存。但我不建议在实际应用中使用它。如果您真的需要,请考虑上面的第 3 个解决方案。
是的,但是您可能会面临两个问题,一个是需要明确处理多个 repos 模块(例如,指定各个模块的路径)。
其次,JDBC/JPA Spring Boot 自动配置将被禁用,您需要将其导入回来。这些问题已在带有 H2 数据库的 Spring Boot 应用程序中的 Reactive 和 Non Reactive 存储库中报告, 并且可以在此问题中找到解决方案和思考过程: https ://github.com/spring-projects/spring-boot /问题/28025