【发布时间】:2017-08-17 15:02:11
【问题描述】:
这是我的虚拟temp 表中的虚拟数据:
以上,columna 中没有数据,但这只是偶然。我想获得具有
-
columna中没有数据 - 具有与输入参数值匹配的
columnb值 - 具有
columnc值是该列的最大数值等效项。 (即columnc的类型为character varying(255),但我知道该单元格中会有integers。所以我只想要那些具有该列的最大整数等效值的行,即上述数据中的1)
查询将如下所示:
SELECT * FROM temp
WHERE
columnb = 'ia'
AND coalesce(columna, '') = ''
AND CAST(coalesce(columnc, '0') AS integer)
=(
SELECT MAX(CAST(coalesce(columnc, '0') AS integer))
FROM temp
WHERE
columnb = 'ia'
AND coalesce(columna, '') = ''
);
输出如下所示:
Q1. 是否可以通过基于 Spring 数据 JPA 方法名称的查询来完成此操作? (主要是我看到这可能是不可能的,因为我遇到了here)。像这样说:findByColumnbAndColumnaIsNullAnd<Something for filtering on max value of columnc>(String columnaValue)?
Q2.如果columnc是数字类型,是否可以做Q1?
Q3. 原生查询(带有@Query 注释)是在spring-data jpa 中执行此操作的唯一方法吗?
【问题讨论】:
标签: java spring jpa spring-data spring-data-jpa