【发布时间】:2019-03-15 13:09:00
【问题描述】:
假设我们有下表,命名为“文档”:
id | createDate | createBy | updateDate | updateBy
--------------------------------------------------
(various rows here)
两个 *date 列是时间戳,而另一个都是字符串(甚至是 id)
目前我在 Spring 存储库中使用了以下本机查询:
select COUNT(distinct(u.user_working_total))
from
(
select distinct(createBy) user_working_total
from documents
where createDate >= :startDate and
createDate <= :endDate
union
select distinct(updateBy) user_working_total
from documents
where updateDate >= :startDate and
updateDate <= :endDate
) as u
如您所见,这必须用作本机查询,因为 JPA 不支持 from 子句中的选择查询。现在我必须将此查询转换为 JPQL 查询,以使其独立于数据库。这在某种程度上可能吗?
欢迎使用其他方法,例如使用规范或类似方法...
【问题讨论】:
-
用
@Query(value = "your-native-sql", nativeQuery = true)怎么样? -
原生查询不适用于哪个数据库?
-
这就是我们现在所拥有的。我们希望你替换原生查询机制。
-
查询在 SQL Server 上运行良好,但我们希望有一个独立于数据库的查询。
标签: java spring-data-jpa jpql nativequery