【发布时间】:2013-12-12 20:45:39
【问题描述】:
在一位同事的帮助下,我设法获得了一个查询,以从如下所示的表中返回我想要的数据:
ID APP_NAME JVM_NAME STARTUP_DATE VERSION_FILE
1 appA jvm1 xxx 1.3.23
1 appA jvm2 xxx 1.3.23
1 appA jvm1 xxx 1.3.23
查询如下:
SELECT b.*
FROM ( SELECT app_name, jvm_name, MAX (startup_date) MDATE
FROM application_log
WHERE app_name = '${someValue}'
GROUP BY app_name, jvm_name) a,
application_log b
WHERE a.app_name = B.APP_NAME
AND a.jvm_name = b.jvm_name
AND a.MDATE = b.startup_date;
我将${someValue} 替换为appA。
我已将此表映射到 ApplicationLog Grails (2.3.4) 域对象,但是我试图弄清楚如何通过 Grails 实现此查询并将其直接映射回我的 POJO。
我的后备计划是,我会为提供的APP_NAME 获取一个不同的JVM_NAME 列表,然后循环遍历这些值。然后根据值查找具有匹配JVM_NAME 和APP_NAME 的行,结果按STARTUP_DATE 排序并应用LIMIT 1。
欢迎提出任何建议。
干杯
【问题讨论】: