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

JPA查询中的联合-来自同一表

叶稳
2023-03-14
问题内容

我有一个要求,我需要限制从表返回的特定标志和所有记录的其他标志值的记录数。

例如:contact-historytable有一个名为的元素IorM_flg,可能的值为’m’和’o’。

我只需要返回10条“ o”记录和所有“ m”记录。

我正打算为此与工会写一个查询。像这样:

select ch from contact_history where ch.rownum <= 10 and ch.IorM_flg = 'o'
Union All
select ch from contact_history where ch.IorM_flg != 'o'

这可能吗?请注意,它是一个JPA查询。(contact_history是对象名称)

任何其他更好的建议,欢迎您!


问题答案:

不,这对于JPQL是不可能的,因为它没有UNION(ALL)。另外,没有办法用rownum限制查询字符串本身返回的行数,但这是通过setMaxResults完成的。

在许多情况下

  • 执行两个查询,
  • 使用setMaxResults限制第一个结果的数量,以及
  • 在Java中丢弃重复项并合并两个查询的结果

是可行的解决方案。



 类似资料:
  • 是否可以在JPA中查询“union”,甚至在“Criteria Builder”中查询“union”? 还是使用本机SQL?

  • 问题内容: 该表包含一个ID列,valueHeading列和一个value列。我想将value列分为两个新列,分别称为valueHeading1和valueHeading2,具体取决于值具有哪种valueHeading类型。 所以我想加入这个选择: 编辑:完全加入 使用此选择: 在各自的ID上。我该怎么做呢? 编辑 以说明我要执行的操作: 原始表格: 新表: 问题答案: 在SQLServer200

  • 如何在Grafana的同一面板中使用来自不同查询的prometheus查询结果。 实例 我在格拉法纳有3个普罗米修斯查询,

  • 有人知道是否有一种方法可以迭代父集合的文档吗?我尝试从我的父集合中获取每个文档,但querySnapshot似乎为空,而事实并非如此。 我收集路径看起来像这样: 我正在尝试做的是迭代每个子集合及其文档,为此我需要迭代父集合的每个文档,但当我使用get()时,它返回一个空的querySnapshot。 这里我的代码: 附言:I知道,我不应该嵌套promise。 更新 这是我的控制台。日志<code>

  • 我对JPA中的继承是新手。我不知道如何查询这样的内容: 让我们假设一个联接继承映射,其中a是一个具有'id'和'name'的实体。还有从A继承的实体A1和A2。A1提供字段'int1',A2提供字段'int2'

  • 问题内容: class Match(Base): tablename = ‘matches’ 我需要编写一个查询,该查询将列和团队表连接在一起,以显示本地和客队的团队信息。 这返回 问题答案: 首先,您的代码不起作用的原因是因为SQLAlchemy不知道您是否要通过via或加入,因此您必须告诉它。此外,您需要加入两次,这使事情变得更加复杂。 使用以下命令可以更轻松地完成此操作: 并且将在相同的查询