Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java r2dbc客户机执行sql并为下一次执行使用返回的id_Java_Spring_Reactive Programming_R2dbc - Fatal编程技术网

Java r2dbc客户机执行sql并为下一次执行使用返回的id

Java r2dbc客户机执行sql并为下一次执行使用返回的id,java,spring,reactive-programming,r2dbc,Java,Spring,Reactive Programming,R2dbc,我将r2dbc客户端与postgresql一起使用,我希望在一个事务中调用2个插入(使用第一个查询的id),如: client.execute(“插入到位(id,city)值(:id,:city)”) .bind(“id”,“nextval('place\u id\u seq')) .bind(“城市”,place.getCity()) .fetch().rowsUpdated()) ) .then(client.execute(“INSERT-in-place\u category value

我将r2dbc客户端与postgresql一起使用,我希望在一个事务中调用2个插入(使用第一个查询的id),如:

client.execute(“插入到位(id,city)值(:id,:city)”)
.bind(“id”,“nextval('place\u id\u seq'))
.bind(“城市”,place.getCity())
.fetch().rowsUpdated())
)
.then(client.execute(“INSERT-in-place\u category value(:place\u id,:category\u id);”)
.bind(“place_id”,)
.bind(“category_id”,place.getCategoryId())
.fetch().rowsUpdated())
.然后();

我不知道如何获取@Id of first insert

在第一条语句中,添加一个额外的过滤器以返回Id字段

.filter((语句,executeFunction)->语句.returnGeneratedValues(“id”).execute())
检查我的和示例

还有一个将它们连接在一起的演示

顺便说一句:我在Spring5.3中使用DatabaseClient来处理这些示例

      client.execute("INSERT INTO place(id,city) VALUES(:id, :city)")
    .bind("id", "nextval('place_id_seq')")
    .bind("city", place.getCity())
    .fetch().rowsUpdated())
    )
    .then(client.execute("INSERT INTO place_category VALUES (:place_id, :category_id);")
      .bind("place_id", <PREVIOUS_ID OF INSERT>)
      .bind("category_id", place.getCategoryId())
      .fetch().rowsUpdated())
    .then();