如何将带有子查询的 JPQL 转换为 Criteria API 等效项?

2024-04-27

有一个由 5 个实体组成的简单对象模型:

  1. Company
  2. 组织
  3. Address
  4. Club
  5. Group

公司与单个组织相关联。 (团体和俱乐部也与单个组织相关联 - 它们是单向的,这意味着组织不包含对其所有者的引用)。一个组织可以有 0 个或多个地址。

子查询可用于基于特定邮政编码(地址的属性)访问 Company 对象。 下面是一个 JPQL 查询,可以访问具有特定邮政编码的公司。

@Query("从公司 p、组织 org 中选择 p,其中 (p.organization = org.id) 且存在(从地址广告中选择 1,其中 邮政编码 = :邮政编码 和 ad.organization = org.id)")

如何使用 JPA Criteria API 完成同样的事情?


这将使用内部联接选择提供邮政编码的公司,这是您想要的吗?

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Company> cq = cb.createQuery(Company.class);
Root<Organization> root = cq.from(Organization.class);
Join<Organization, Address> adr = root.join("addresses");
cq.select(root.get("company"));
cq.where(cb.equal(adr.get("zipcode"), zipcode));

如果公司没有属性,您将无法通过组织访问公司。如果您的公司引用了组织,那么您可以将以下代码添加到组织类中进行单向映射到双向映射:

@OneToOne(mappedBy="organization") //Providing the name of property in Company 
private Company company;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将带有子查询的 JPQL 转换为 Criteria API 等效项? 的相关文章

随机推荐

  • SQL 中的模糊分组

    我需要修改 SQL 表以对稍微不匹配的名称进行分组 并为组中的所有元素分配标准化名称 例如 如果初始表如下所示 Name Jon Q John Q Jonn Q Mary W Marie W Matt H 我想创建一个新表或向现有表添加一个
  • 比较 Java 中的两个基元数组?

    我知道 Arrays deepEquals Object Object 但这不适用于原始类型 由于数组和自动装箱的限制 请参阅这个相关帖子 https stackoverflow com questions 517751 java gene
  • 在智能手机上选择尺寸为正常尺寸

    在我的网络应用程序中 我创建了一个选择size 5 正确显示 您可以从图像中看到 当我在移动设备上打开应用程序时 我得到的是这个维度 您如何看到尺寸不正确 我通过代码而不是CSS设置尺寸 我再说一遍 这在桌面上有效 但在移动设备上不起作用
  • Swift 3 - 扩展字典数组

    我有这一系列字典 var dicts key1 value1 key2 value2 key1 value3 key2 value4 我应该如何延长Array这样我就有这个功能 dicts values of key1 result val
  • 当隐藏箭头对象时,如何以编程方式识别在图表上绘制向上/向下箭头?

    我知道如何在图表上绘制对象箭头 我通常这样做 ObjectCreate 0 prevHigh OBJ ARROW DOWN 0 Time 0 High highestCandle ObjectSetInteger 0 prevHigh OB
  • 在 Xcode 7 中下载适用于 10.9 和 10.10 的 Mac OS X SDK

    是否可以使用 Xcode 7 在 OS X 10 11 上下载并针对 Mac OS X 10 9 和 10 10 SDK 进行构建 是的 这是可能的 Xcode遗产 https github com devernay xcodelegacy
  • Emacs:如何拉动最后拉动的文本,无论后续杀戮如何?

    我经常发现自己在完成一些杀戮后反复猛拉一些东西 它变成了一个像这样的过程 C y C y M y C y M y M y C y M y M y M y 每次我删除一些文本时 它都会将第一个删除推回到删除环中 以便我需要循环遍历所有删除以返
  • 在android中启动基于文件的Activity

    我正在开发一个应用程序 它列出文件夹中的文件 在 ListView 中 当用户单击其中一个项目时 如果它是一个文件 那么我想启动一个可以处理它的活动 如果有的话 或者如果没有则显示某种错误消息 我怎样才能做到这一点 当然 这不是全部 但我如
  • find 命令的“exec”功能可以在后台启动程序吗?

    我想做这样的事情 find iname Advanced Linux Program exec kpdf 可能的 还有其他类似的方法吗 首先 它不会像你输入的那样工作 因为 shell 会将其解释为 find iname Advanced
  • 这个具有多个值(变量)的 return 语句如何工作? [复制]

    这个问题在这里已经有答案了 我试图了解 C 函数中按值传递和返回是如何发生的 我发现一段代码如下 include
  • 如何在样式定义中排除包含所有子级的类

    我有一个像这样的文件 div div class abc div div div div 我想要做的是将样式仅应用于第一个 div 我尝试使用div not abc abc div not abc not abc div not abc d
  • Sitecore Workbox,显示名称的项目字段?

    默认情况下 Sitecore 工作箱显示项目名称 我想显示 标题 字段 自定义字段 我怎样才能做到这一点 我有一个类似的要求 客户需要 Workbox 显示项目的 路径 而不是其名称 问题是他们的许多物品具有相同的名称 因此很难区分物品 不
  • 在Java程序中打开Windows虚拟键盘

    我想在按钮中创建一个事件 当我单击按钮时 我想打开 Windows 虚拟键盘 你能帮我看一下代码吗 谢谢您的合作 此致 您可以使用 getRuntime 来执行它 import java io IOException public clas
  • 用于解析文件( csv )并逐行处理的 Shell 脚本[重复]

    这个问题在这里已经有答案了 您好 需要一个 shell 脚本来解析 csv 文件 逐行解析 然后逐个字段 该文件将如下所示 X1 X2 X3 X4 Y1 Y2 Y3 Y4 我需要提取这些 X1 X2 我写了一个脚本 但如果行超过一行 它就会
  • 安全规则仅允许具有经过验证的电子邮件的用户进行写入

    我有非常简单的写入安全规则 应该只允许具有经过验证的电子邮件的用户写入数据 someNode write auth token emailVerified true 由于某种原因 我仍然在具有特定用户令牌的模拟器中和在具有同一用户的应用程序
  • 在 Express + NodeJS 应用程序的控制器中使用 ES6 类或对象文字

    有两件事我很困惑 使用任何 ES6 类或对象文字的优点是什么 我应该在哪里使用它们 下面提到了我正在尝试的一些示例 请让我知道何时使用特定的实现方式 何时不使用 类例1 auth js class Auth login req res si
  • 使用嵌套对象进行 Hapi/Joi 验证

    我对我的其中一条路线进行了以下验证 payload keywordGroups Joi array items Joi object keys language Joi string required containsAny Joi arr
  • 从一个 Nodejs 应用程序调用另一个 Nodejs 应用程序中的 API 的方法

    我们的应用程序将有一个网站和一个移动应用程序 两者都与同一个 API 后端进行通信 我有一个仅提供 API 服务的 Nodejs 应用程序 还有一个为网站提供 html 页面服务的 Nodejs 应用程序 我正在为这两个应用程序使用 Exp
  • 指向基类的基本多态指针

    虽然我已经在 C 领域工作了一段时间 但直到现在我才需要使用多态特性 而且我对它们非常感兴趣 如果我有一个基类ClassA和另一个ClassB从中衍生出来 我明白我可以拥有virtual中的成员函数ClassA即 当实施于ClassB 将被
  • 如何将带有子查询的 JPQL 转换为 Criteria API 等效项?

    有一个由 5 个实体组成的简单对象模型 Company 组织 Address Club Group 公司与单个组织相关联 团体和俱乐部也与单个组织相关联 它们是单向的 这意味着组织不包含对其所有者的引用 一个组织可以有 0 个或多个地址 子