mysql - 选择自定义数据,Cayenne 返回空行

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

我正在尝试从 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/

相关文章:

php - Mysql WHERE OR WHERE 以整数奇怪的结果开始

mysql - 主查询和子查询中的 DISTINCT 子句

java - Collections.emptyList() 而不是空检查?

r - 如何清空 R 中的列表?

android - SwipeRefresh 布局不适用于自定义空 ListView

php - 如何从Joomla类别获取数据库信息

mysql - 使用 SQL 设置表中的列以匹配另一个表中的最高上下文值

c# - 最近一篇关于 Java EE 和 .NET 比较的好文章?

java - Java Web 应用程序和 Java 企业应用程序有什么区别?

configuration - J2EE 应用程序/Bean 配置最佳实践?