spring-data-jpa - 是否可以在单个 Spring Boot 应用程序中同时使用 Spring Data R2DBC 和 Spring Data JPA?
问题描述
我有一个使用 Spring data JPA 和 hibernate envers 进行数据库审计的应用程序。由于 R2DBC 还不支持审计,是否可以在单个应用程序中结合使用两者?
如果是,计划使用 Spring Data JPA 进行插入、更新和删除操作,这样所有的 DB 审计都将由 hibernate 环境处理。并使用 R2DBC 进行反应式非阻塞 API 来读取数据。
如果没有,是否有关于如何同时实现反应式 API 和审计的建议?
解决方案
Spring 提供了简单的 Auditing via
@EnableR2dbcAuditing
,请查看我的示例。在反应式应用程序中混合 JPA 也是可能的,我有一个示例来演示在反应式应用程序中运行 JPA,但没有在其中添加 r2dbc。
对于您的计划,更好的解决方案是在数据库拓扑上应用 cqrs 模式,为您的应用程序使用数据库集群。
- JPA 用于应用更改,使用主/主数据库接受修改,并将更改同步到辅助/从数据库。
- r2dbc 如您所愿进行查询,使用辅助/从属数据库进行查询。
- 在前端使用网关进行查询和命令服务。
更新:我创建了一个示例来演示JPA 和 R2dbc 在单个 webflux 应用程序中的共存。但我不建议在实际应用中使用它。如果您真的需要,请考虑上面的第 3 个解决方案。
推荐阅读
- python - 如何将具有多张工作表的excel合并为一个excel?
- testing - 开玩笑覆盖报告中方法名称旁边的“I”图标是什么?
- sql - 当我尝试运行以下 plsql 代码时出现“ORA-00922:缺少或无效选项”错误。如何解决?
- gitlab - 管道详情页面显示的作业数量是否有限制?(GitLab)
- assembly - 汇编代码的 CMSIS 标头可用性
- javascript - 如何在 Recommendations AI 的购物车页面查看事件中传递多个产品?
- python-3.x - 如何访问带有正文显示的网页:无使用 Selenium Python
- angular - Angular 导入和模块 / 一般问题
- python - 在 Heroku 上部署 React 应用程序 - 如何向上跳转一个文件夹
- deployment - Azure:部署集成在数据块上的 ML 模型的 Ansible 角色