我正在尝试从 2 个差异 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 个有数据的行。
我该怎么办?
最佳答案
您应该设置select.setFetchingDataRows(true)
默认 SQLTemplate
将尝试将结果转换为数据对象(在您的情况下为 DateInfo
)。
设置此标志后查询将返回 List<DataRow>
和DataRow
是平原 java.util.HashMap
的 Cayenne 内部扩展.
关于mysql - 选择自定义数据,Cayenne 返回空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45907666/