R2DBC在spring boot 2.3.7版本下多主键CRUD的方式

很久没写博客了,因为又被拉去带搞spring了!

本文内容基于spring boot 2.3.7.RELEASE。

R2DBC接入在1月份的文章有讲,但是注意版本差异,后面的版本R2DBC从整个包都发生了迁移。选择2.3.7是因为这是能比较好适配nacos的最高版本的spring boot。在spring cloud alibaba下,对新版本的兼容是非常滞后的。题外话!

R2DBC ReactiveCrudRepository 并不支持多主键(至少在2.3.7我没有找到支持的方式)。第一个,你就找不到合适的class去放在ReactiveCrudRepository的第二个泛型。第二,即使你使用r2dbcTemplate,也会直接报错。
剩下的办法就只能走万能的sql语句了,具体,官网有说明,这里简单示例一下:

//数据库为postgresql
r2dbcTemplate.databaseClient.execute(
                        "INSERT INTO data (id,data,type) VALUES (:id,:data,:type)"
                    )
                        .bind("id",unifiedRequest.unified.unifiedId)
                        .bind("data",unifiedRequest.unified.dataId)
                        .bind("type",unifiedRequest.unified.unifiedType)
                        .asType<Long>()
                        .fetch()
                        .first()

fetch是一个提交动作,前面的语句可以看成一个完成的sql语句,bind是将参数绑定上去,asType是返回值可以返回响应式流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值