我在 spring boot 2.7 中有一个使用 java 11 的项目。目前我在 spring boot 中使用 JPA 与 DB 交互。由于我使用反应式库,我正在考虑升级到反应式驱动程序,即 r2dbc。但 r2dbc 不支持 ORM(对象关系映射)。我在项目中有一对多、多对一的关系。
如何使用 r2dbc 实现这些关系?请让我知道所有的可能性。
我在我们的项目中使用 Spring Boot/Spring Data R2dbc 已有两年多了,到目前为止一切正常。
Spring Data R2dbc 不支持嵌入、一对一/多等。对于跨多个表的复杂查询,我们改变策略并使用 jOOQ 在类型安全的代码中构建复杂查询。
查看混合 Spring Data R2dbc 和 jOOQ 的示例,https://github.com/hantsy/spring-r2dbc-sample/tree/master/jooq,其中包括处理一对多和多对多等。
另一个选择是切换 Micronaut。 Micronaut 对开发人员来说是个新事物,它提供了与 Spring 类似的 API。 Micronaut Data 包括对 R2dbc/Jdbc 模块的 JPA 类似关系支持。
检查我的 Micronaut 示例项目:https://github.com/hantsy/micronaut-sandbox