【问题标题】:Select Custom data with Cayenne return empty lines使用 Cayenne 选择自定义数据返回空行
【发布时间】:2017-08-27 17:41:42
【问题描述】:

我正在尝试从 2 个 diff mysql 表中选择数据:

SELECT 

    SUM(TIMESTAMPDIFF(HOUR, startdatetime, enddatetime)), 
    SUM(TIMESTAMPDIFF(HOUR, startdatetime, enddatetime) * hourly),

    SUM(CASE 
    WHEN TIME(startdatetime) BETWEEN '06:00:00' AND '12:00:00' THEN 'test', 

    SUM(CASE 
    WHEN TIMESTAMPDIFF(HOUR, startdatetime, enddatetime) <= 9 THEN 'TEST'
    ELSE 'TEST2'
    END) 

    FROM date, tarif
    GROUP BY userid, MONTH(startdatetime), YEAR(startdatetime)

在我的代码中,我有:

SQLTemplate select = new SQLTemplate(DateInfo.class, query);
return CayenneUtil.getContext().performQuery(select);

我也试过了:

CayenneUtil.getContext().performGenericQuery(select).firstList()

但我收到了 4 行空行而不是 4 行数据。

我该怎么办?

【问题讨论】:

    标签: mysql jakarta-ee empty-list apache-cayenne


    【解决方案1】:

    您应该将select.setFetchingDataRows(true) 设置为默认情况下SQLTemplate 将尝试将结果转换为数据对象(在您的情况下为DateInfo)。 设置此标志后,查询将返回List&lt;DataRow&gt;,而DataRow 是纯java.util.HashMap 的Cayenne 内部扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 2020-08-18
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      相关资源
      最近更新 更多