使用 Criteria API 的动态 JPA 2.0 查询

2023-11-27

我在使用 JPA 2.0 的 CriteriaBuilder 构建动态查询时有点卡住了。

我猜想我有一个相当常见的用例:用户提供任意数量的搜索参数 X 和/或连接:例如:

select e from Foo where (name = X1 or name = X2 .. or name = Xn )

CriteriaBuilder 的 Method 或 不是动态的:

谓词或(谓词...限制)

有想法吗?样品?


在你的情况下,我宁愿使用Expression#in(Collection)以避免必须循环并构建复合Predicate动态地:

CriteriaBuilder cb = em.getCriteriaBuilder();

CriteriaQuery<Foo> cq = cb.createQuery(Foo.class);
Metamodel m = em.getMetamodel();
EntityType<Foo> Foo_ = m.entity(Foo.class);
Root<Foo> foo = cq.from(Foo_);
cq.where(my.get(Foo_.name).in(params));

您可能想检查使用 Criteria API 和 Metamodel API 的基本类型安全查询更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Criteria API 的动态 JPA 2.0 查询 的相关文章

随机推荐

  • 使用 ActiveJob AsyncAdapter 列出排队任务

    有没有办法让我看到队列中剩余多少个作业 甚至可以检查每个作业 经过一番深入研究后源代码这是我发现的 ActiveJob QueueAdapters AsyncAdapter uses a 并发红宝石线程池来调度和执行作业 当您在配置中初始化
  • 如何使用 PHP 动态创建价格范围

    如何从价格数组创建价格范围 假设我有一个保存价格的数组 Array 0 gt 500 1 gt 500 2 gt 520 3 gt 540 4 gt 551 5 gt 599 6 gt 601 7 gt 601 8 gt 650 9 gt
  • 是否可以从非通用应用程序使用 Wi-Fi Direct?

    我一直在尝试编写一个简单的代码基于命令行的应用程序 使用 Visual Studio 2015 和 Windows 10 中的 C 和 NET 启动 Wi Fi Direct 广告商 如下所示Microsoft 的通用示例 而是手动添加对必
  • 卸载 DLL 期间删除静态对象时退出线程会导致死锁吗?

    我的延迟加载 DLL 中有一个 ClassA 实例 全局 静态对象 该对象内部有一个 观察者 线程 需要执行正常关闭 当我调用 FreeLibrary 时 我注意到在删除这个静态对象期间 我的线程请求关闭 但挂在 endthreadex 上
  • 如何在子目录中移动模块?

    我需要写很多trivial模块 我不想隐藏它们之间的主要模块 由于这个原因 我想要一个像这样的目录树 Project module1 module2 directory module3 module4 module5 问题 如果我将模块移动
  • Pydub - 将 split_on_silence 与最小长度/文件大小结合起来

    我有两个脚本 其中一个会分割一定长度的音频 另一个会在每次出现无声段落时分割音频 是否可以在静音时分割音频 但只能在经过一定时间后 我需要在静音状态下分割成不少于 5 分钟的视频块 分割脚本忽略静音 from pydub import Au
  • 我应该创建一个可以为空的外键还是创建一个新表?

    我有一个关于如何设计数据库的小问题 我有一个动物收容所的桌狗 我有一个桌主人 所有现在和曾经在收容所的狗都被安置在餐桌狗中 现在我想在桌狗和桌主人之间建立联系 问题是 在这个例子中 并不是所有的狗都有主人 并且由于一个主人可以有不止一只狗
  • Kotlin:当 Java 库同时重载原始类型和装箱类型时我该怎么办?

    例如 FastUtil 的IntArrayList has a push接受两者的方法int 原始 和Integer 盒装 但 Kotlin 将它们视为同一个函数push Int 因此我根本无法使用该函数 因为该函数不明确 当 Java 库
  • Java 停止服务器线程

    以下代码是我的应用程序中的服务器代码 private int serverPort private Thread serverThread null public void networkListen int port serverPort
  • 通过将数字列与固定值进行比较来创建类别

    考虑iris data iris Sepal Length Sepal Width Petal Length Petal Width Species 1 5 1 3 5 1 4 0 2 setosa 2 4 9 3 0 1 4 0 2 se
  • 如何“清除”绝对定位的元素

    好吧 我知道 1 仅靠 CSS 可能是不可能的 2 这确实不应该是可能的 不幸的是 由于用户的一些要求 我需要找到一种方法来使其成为可能 好的 一些大大简化的标记 div div div div Stuff1 div div Stuff2
  • Spring mvc @PathVariable

    你能给我一个简短的解释和使用示例吗 PathVariable在 Spring MVC 中 请说明您如何输入网址 我正在努力获取正确的 url 来显示 jsp 页面 谢谢 假设你想写一个 url 来获取一些订单 你可以说 www mydoma
  • 分页不正确显示页码 Codeigniter

    我的控制器功能 function test start from 0 this gt load gt library pagination data array per page 3 total this gt activity model
  • 如何使用 javascript 获取 firebase 3 的 accessToken

    我需要使用带有 firebase REST Api 的 javascript 进行浅层休息调用 在过去的版本中我需要像这样传递访问令牌 var authKey ref getAuth token var s firebaseUrl json
  • LinearLayout、RelativeLayout 和 AbsoluteLayout 之间有什么区别?

    我对 LinearLayout RelativeLayout 和 AbsoluteLayout 之间的区别感到困惑 有人可以告诉我它们之间的确切区别吗 LinearLayout意味着您可以将视图一一对齐 垂直 水平 RelativeLayo
  • 如何ptrace多线程应用程序?

    编辑 取得进展 我正在尝试 ptrace vsftpd 守护进程 我有以下附加到守护进程的代码 然后它成功显示第一个生成的进程的 PID 然而 对于这个生成进程的子进程 它返回的 PID 为 2 3 该程序确实捕获了生成进程的退出 这让我觉
  • 运行 npm install create-react-app 时出现错误 404

    出现错误404在跑步的时候npm install create react app or npm install g npm latest Log 0 info it worked if it ends with ok 1 verbose
  • 使关键字自动全局链接

    有没有办法让单词的每个实例自动变成链接 例如 每次我写 apple 时 它都会自动格式化为 a href www apple com class whatever target blank apple a 我假设我可以使用 javascri
  • Seaborn load_dataset

    我正在尝试使用 Seaborn 按照以下方式进行分组箱线图工作example 我可以让上面的例子工作 但是行 tips sns load dataset tips 根本没有解释 我已经找到 Tips csv 文件 但我似乎无法找到有关 lo
  • 使用 Criteria API 的动态 JPA 2.0 查询

    我在使用 JPA 2 0 的 CriteriaBuilder 构建动态查询时有点卡住了 我猜想我有一个相当常见的用例 用户提供任意数量的搜索参数 X 和 或连接 例如 select e from Foo where name X1 or n