jpa - JPQL/JPA 查询基于两列的最大/最大值对实体进行排序?

标签 jpa jpql

我需要类似于此 SQL 查询的内容:

SELECT * FROM foo f ORDER BY GREATEST(f.bar_date, f.baz_date)

由于并非所有 RDBMS 系统都支持 GREATEST 函数,理想情况下我希望 JPA 实现为底层数据库生成正确的 SQL 查询。我的目标数据库是 Oracle、SQL Server 和 PostgreSQL。

最佳答案

JPQL 允许 FUNCTION 运算符调用数据库函数。

Oracle 和 Postgres 支持 GREATEST,我认为 SQL Server 不支持,因此您可以为此编写自己的函数。

您还可以将 CASE 函数与 > 结合使用。

关于jpa - JPQL/JPA 查询基于两列的最大/最大值对实体进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844145/

相关文章:

mysql - 如何将算术表达式从 SQL 转换为 JPQL?

Java JPQL : add an int value to the already existing one in Database

java - Hibernate 无法以自定义方言注册 MySQL 的 'LIMIT' 函数

java - QueryDSL:格式化字符串的 DateTimePath

hibernate - JPA - 在 IN 运算符中使用长数组会引发强制转换异常

java - 在 JPQL 中将表修剪为 500 条记录

java - 持久化之前的 JPA @Version 值

hibernate - 事务提交后的事件 Spring JPA

google-app-engine - 使用 JPA 的 Google App Engine 中的百万用户扇出

java - 将 boolean 值显示为图标时 Vaadin 网格与持久性