如何解决如何在Spring Data R2DBC中使用Fluent Data Access API返回生成的ID
当插入新记录时,我的数据库会自动生成ID,并且一旦插入完成,我想在代码中使用生成的ID。使用Statement
时,可以通过following approach来实现。
db.execute("INSERT INTO table (name,state) VALUES(:name,:state)")
.filter { s,next -> next.execute(s.returnGeneratedValues("id")) }
.bind("name",name)
.bind("state",state)
.map { t -> t.get("id",Long::class.java) }
但是,我目前正在使用Fluent Data Access API,因此对于我来说,采用以下代码样式获取插入ID的方法将受到赞赏。
db.insert().into("table")
.value("name",name)
.value("state",state)
// get generated ID
有什么解决办法可以实现吗?
解决方法
您应该可以使用相同的map
方法:
db.insert().into("test")
.value("name",name)
.value("state",state)
// Use "LAST_INSERTED_ID" for MySQL
.map { t -> t.get("id",java.lang.Long::class.java) }
.one()
(我假设表中生成的ID列称为id
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。