Java 如何将行集转换为Uni<;int[]>;在夸克斯?

Java 如何将行集转换为Uni<;int[]>;在夸克斯?,java,vert.x,quarkus,Java,Vert.x,Quarkus,由于我是quarkus新手,我一直被困在原地,这里我正在从数据库获取所有ID,但我无法将其作为Uni返回,请帮助我 public Uni<int[]> getRun(String owner, Date dateIN) { try{ sql="select r.id from tabel r where r.userName=$1 AND (r.endDate IS NULL OR r.endDate >=$2)";

由于我是quarkus新手,我一直被困在原地,这里我正在从数据库获取所有ID,但我无法将其作为Uni返回,请帮助我

public Uni<int[]> getRun(String owner, Date dateIN) {
    try{
        sql="select r.id from tabel r where r.userName=$1 AND (r.endDate IS NULL OR r.endDate >=$2)";
    
        return client.preparedQuery(sql).execute(Tuple.of(owner,dateIN)).onItem().transform(pgRowSet -> pgRowSet.iterator())
        .onItem().transform(ro -> ro.hasNext() ? Integer.parseInt(ro.next().toString()) : 0);
    }
    catch(Exception e){
        return null;
    }
}
public Uni-getRun(字符串所有者、日期){
试一试{
sql=“从选项卡r中选择r.id,其中r.userName=$1和(r.endDate为NULL或r.endDate>=$2)”;
返回client.preparedQuery(sql).execute(Tuple.of(owner,dateIN)).onItem().transform(pgRowSet->pgRowSet.iterator())
.onItem().transform(ro->ro.hasNext()?Integer.parseInt(ro.next().toString()):0);
}
捕获(例外e){
返回null;
}
}
在这里,我无法将其作为Uni返回,查询其他东西是否正常工作。

尝试以下操作:

public Uni<int[]> getRun(String owner, Date dateIN) {
    String sql = "select r.id from tabel r where r.userName=$1 AND (r.endDate IS NULL OR r.endDate >=$2)";
    return client.preparedQuery(sql).execute(Tuple.of(owner, dateIN)).onItem().transform(rows -> {
        return StreamSupport.stream(rows.spliterator(), false).mapToInt(row -> row.getInteger(0)).toArray();
    });
}
public Uni-getRun(字符串所有者、日期){
String sql=“从选项卡r中选择r.id,其中r.userName=$1和(r.endDate为NULL或r.endDate>=$2)”;
返回client.preparedQuery(sql).execute(Tuple.of(owner,dateIN)).onItem().transform(行->{
返回StreamSupport.stream(rows.spliterator(),false).mapToInt(row->row.getInteger(0)).toArray();
});
}

Yeh,谢谢你这对我有用:)