【问题标题】:How to allow more than 6 arguments in Quarkus Tuple.of() method?如何在 Quarkus Tuple.of() 方法中允许超过 6 个参数?
【发布时间】:2021-05-16 20:20:28
【问题描述】:

由于我是 Quarkus 的新手,我一度陷入困境,如果有人可以帮助我,那就太好了。 我正在使用 Quarkus 反应式 PgPool(基本上是 vertx)创建一个应用程序,并且我必须在表中插入超过 6 列的记录

import io.smallrye.mutiny.Uni;
import io.vertx.mutiny.sqlclient.Tuple;
import io.vertx.mutiny.pgclient.PgPool;

public Uni<Long> addRequest(PgPool client) {
   String sql = "Insert into request (column1, column2, column3, column4, column5, column6, column7, column8, column9"
     +", column10, column11, column12, column13, column14, column15)"+
     "  values ($1, $2, $3, $4, $5, $6, $7, $8, $9"
     +", $10, $11, $12, $13, $14, $15) RETURNING id";

  **//Here I am adding 15 columns to Tuple but it's allowing**

  Tuple t = Tuple.of(column1, column2, column3, column4, column5, column6, column7, column8, column9
     , column10, column11, column12, column13, column14, column15);

   return   client.preparedQuery(sql).execute(t).onItem().transform(pgRowSet -> pgRowSet.iterator().next().getLong("id"));
}

请让我知道如何正确执行此操作,或者是否有更好的方法来执行此操作,例如直接传递 POJO 类实例或使用 NamedJdbcTemplate,因为我的某些表包含超过 50 列并且保持数量不太好?

【问题讨论】:

    标签: java vert.x quarkus


    【解决方案1】:

    我正在使用 quarkus 2.0.2.Final:

    2.0.2.Final

    而且似乎只有wrap() 方法对我有用:

    Tuple源代码显示wrap方法接受List类型:

    【讨论】:

      【解决方案2】:

      您可以使用 Tuple.tuple(List) 方法将所有列存储到 List 中并将其作为参数传递。

      List<Column> columns = new ArrayList<>();
      columns.add(column1);
      //...
      
      Tuple t = Tuple.tuple(columns);
      

      不要和 Tuple.of() 混淆,方法是 Tuple.tuple()!

      【讨论】:

      • 我尝试了以下方法但不起作用: Object[] array = {column1, column2, column3, column4, column5, column6, column7, column8, column9, column10, column11, column12, column13,第 14 列,第 15 列};列表 l= Arrays.asList(array);元组 t = Tuple.of(l);
      • @user3458271 该方法称为Tuple.tuple(),而不是Tuple.of() ...这是误导,是的..
      • 从您的示例中,只需更改 Tuple t = Tuple.tuple(I);
      • 噢噢噢,我弄错了,谢谢你的帮助:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-15
      • 2014-06-10
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2011-05-31
      相关资源
      最近更新 更多