【问题标题】:Java JOOQ parse query to ArrayList with objectJava JOOQ 使用对象将查询解析为 ArrayList
【发布时间】:2021-06-12 07:19:10
【问题描述】:

我有问题。我正在使用 JOOQ,我创建了以下查询:

create.select(
        DSL.field("Mainkey"),
        DSL.field("Market"),
        DSL.field("Coin"),
        DSL.field("Period"),
        DSL.field("DateTimeGMT0"),
        DSL.field("DateTimeLocal"),
        DSL.field("Close"))
        .from(DSL.table("vwCD_All_Selection_" + market + "_" + coin + "_1m_Order_DateTime_DESC"))
        .where(DSL.field("DateTimeLocal").greaterOrEqual(startDateTime.minusMinutes(1))).fetch();

现在我也有以下课程:

public class Candlestick implements Comparable<Candlestick> {

    private long MainKey;
    private LocalDateTime DateTimeGMT0;
    private LocalDateTime DateTimeLocal;
    private String Market;
    private String Coin;
    private String Period;
    public Double Close;

}

现在我希望将查询结果解析为ArrayList&lt;Candlestick&gt;。我找到了这个页面:https://www.jooq.org/doc/3.0/manual/sql-execution/fetching/arrays-maps-and-lists/,它显示了如何将结果解析为列表,即用于选择的特定列。我想解析整个对象。

我怎样才能做到这一点?

【问题讨论】:

    标签: java jooq


    【解决方案1】:

    你可以使用

    .fetchInto(Candlestick.class);
    

    而不是

    .fetch();
    

    这将为您提供 Canldestick 的集合。

    【讨论】:

    • 这部分有效。除 LocalDateTime 值外,所有内容都被解析到该类。我该如何解决?
    • 在我的数据库中它的类型是datetime,但我需要LocalDateTime
    • 你得到了什么?
    • 我得到一个null 值,但我的数据库中的值例如是2021-03-15 12:32:00
    • 我会尝试重现。为什么不从数据库生成类?
    猜你喜欢
    • 2020-09-01
    • 2012-10-28
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多