1

最近写了一个连接数据库的程序!

我认为将 sql 替换为 querydsl;

例如 SQL:

SELECT"MAX"(aa) AS big,"MIN"(aa) AS small FROM (
SELECT
    "TO_NUMBER"(MONITOR_INFO."VALUE") aa
FROM
    MONITOR_INFO
WHERE
    MONITOR_INFO.DSID IN (9211)
AND MONITOR_INFO."TIME" BETWEEN "TO_DATE" (
    '2013-09-03 00:00:00',
    'yyyy-mm-dd hh24:mi:ss'
)
AND TO_DATE (
    '2013-09-04 00:00:00',
    'yyyy-mm-dd hh24:mi:ss'
)
)

如何使用 Querydsl 替换?

4

1 回答 1

1

假设您正在使用 Querydsl SQL,并且您已经为 Querydsl 生成了元模型。然后你可以将给定的查询描述为

QMonitorInfo monitorInfo = QMonitorInfo.monitorInfo;
List<Tuple> result = query.from(monitorInfo)
      .where(
         monitorInfo.dsid.eq(9211),
         monitorInfo.time.between(start, end))
      .list(monitorInfo.value.castToNum(Integer.class).max(), 
            monitorInfo.value.castToNum(Integer.class).min());
于 2013-09-16T10:23:59.047 回答