当前位置: 首页 > 面试题库 >

具有LEAST和GREATEST函数的JPA CriteriaQuery

弓举
2023-03-14
问题内容

我有一个问题,我需要使用LEAST和GREATEST函数联接两个表,但要使用JPA CriteriaQuery。这是我要复制的SQL …

select * from TABLE_A a
inner join TABLE_X x on
(
  a.COL_1 = least(x.COL_Y, x.COL_Z)
  and
  a.COL_2 = greatest(x.COL_Y, x.COL_Z)
);

我看过CriteriaBuilder.least(..)和great(..),但是在尝试理解如何创建Expression<T>传递给任何一个函数的过程中遇到了困难。


问题答案:

事实证明,CriteriaBuilder确实支持将LEAST和GREATEST作为非聚合函数来调用,并且可以使用CriteriaBuilder.function(..)进行访问,如下所示:

Predicate greatestPred = cb.equal(pathA.get(TableA_.col2),
                    cb.function("greatest", String.class,
                            pathX.get(TableX_.colY), pathX.get(TableX_.colZ)));


 类似资料:
  • 问题内容: PostgreSQL有一个有用的功能,称为。它返回那些传递给它记录的最大价值在这里。 SQLite中是否有任何等效项? 需要注意的是,我只需要使用它来处理2个参数。 问题答案: 参考:https : //sqlite.org/lang_corefunc.html#maxoreunc 多参数max()函数返回具有最大值的参数,如果任何参数为NULL,则返回NULL。多参数max()函数从

  • 问题内容: 我想比较两列中的两个日期并得到最大值,然后再与日期值进行比较。这两列也可以容纳NULL值,例如我想要下面的OUTPUT。如何使用最大的函数或是否有任何东西else。我再次使用输出与另一个日期进行比较。 问题答案: 在您的选择中使用Oracle结构:

  • greatest 是一个 C 语言的单元测试系统,只需要一个文件支持。示例代码: $ cat simple.c#include "greatest.h"TEST x_should_equal_1() {    int x = 1;    ASSERT_EQ(1, x);                              /* default message */    ASSERT_EQm

  • 问题内容: 我正在尝试在每个记录(MySQL)的三个不同字段中选择最大日期,因此,在每一行中,我都有date1,date2和date3:始终填充date1,date2和date3可以为NULL或为空GREATEST语句为简单明了,但对NULL字段没有影响,因此效果不佳: 我也尝试过更复杂的解决方案,例如: 此处存在相同的问题:NULL值是返回正确记录时的重大问题 拜托,你有解决办法吗?提前致谢..

  • 似乎Microsoft.NET.Sdk.Functions版本3.0.4与EntityFrameworkCore一起打破了DI。 在3.0.3中,我可以在DI中添加一个InMemoryDatabase,并在我的函数中使用它,但是升级到3.0.4中断声明: Microsoft.Extensions.DependencyInjection.Abstractions:尝试激活AzureFunction.

  • 问题内容: 我的问题是为什么我不能再次调用该函数?或者,如何做到这一点? 假设我有这个功能: 我称之为: 我得到4。 但是,假设我声明了一个与该函数同名的变量(错误): 现在,如果我尝试这样做: 要么: 我将收到此错误:“ TypeError:’int’对象不可调用” 无法将变量“ a”分配给函数? 问题答案: 完成此操作后: 不再是一个 函数 ,而只是一个 整数 (您已将其重新分配!)。因此,很