当前位置: 首页 > 知识库问答 >
问题:

JPA查询:选择最后一个孩子拥有特定属性的所有家长

邓才
2023-03-14

我在猜测下面的查询是如何通过JPQL编写的:

选择最后一个子项(最新id)具有特定列(属性)值的所有父项(1-n关系的第1侧)。我的实体看起来像

父母亲JAVA

@Entity
class Parent {

@Id
@Column(name="ID_PARENT")
@GeneratedValue(strategy=GenerationType.IDENTITY) 
private Long id;

@OneToMany(mappedBy="parent")
private List<Child> children;

}

Child.java

@Entity 
class Child {

@Id
@Column(name="ID_CHILD")
@GeneratedValue(strategy=GenerationType.IDENTITY) 
private Long id;


@ManyToOne()
@JoinColumn(name="ID_PARENT")
private Parent parent;

private String attribute;


}

JPQL会是什么样子?谢谢大家

共有1个答案

孙绍辉
2023-03-14

它应该与SQL没有太大区别。我在一个类似的数据库里工作。

SELECT *
FROM Parent p
INNER JOIN Child c
ON c.ID_PARENT   = p.ID_PARENT
WHERE c.ID_CHILD =
  (SELECT c2.ID_CHILD
  FROM Child c2
  WHERE c.ID_PARENT = c2.ID_PARENT
  AND c2.attribute = <parameter>
  AND c2.ID_CHILD   =
    (SELECT MAX(c3.ID_CHILD)
    FROM apuracao_fator_risco c3
    WHERE c2.ID_PARENT = c3.ID_PARENT
    )
  )

这些帖子也很有用:

JPA为每个项目选择最新实例

JPA按子集合中最后一个元素的属性对查询进行排序

 类似资料:
  • 问题内容: 可以说我们有以下代码: 您将如何选择第一个属性等于3的孩子?我在想,也许这可以做到: …但是没有用 问题答案: 该伪类仅着眼于第一子节点,因此,如果第一个孩子是不是,则选择一无所有。 没有类似的属性过滤器伪类。一种简单的解决方法是选择每个对象,然后排除第一个对象之后的内容 当然,这仅适用于样式。如果您要出于样式之外的目的挑选该元素(因为标记看起来是任意XML而不是HTML),则必须使用

  • 我有一张桌子,可以有相同类型的父母。在Java中,子对象可以到达父对象,但父对象没有子对象列表。 在MySQL中,我能够创建以下查询,给我父级的子级和子级,但我无法将其转换为JPAJava。 如何翻译此查询: 在java语言中,使用Criteria builder和Criteria Query,我已经尝试了以下方法: 但这只给了我直接的孩子,没有给我亚孩子。 谢谢你的帮助。 实体:

  • 问题内容: 如何使用CSS3选择器选择除最后一个子项之外的所有子项? 例如,只得到最后一个孩子第N个子项(1) 是的。。 问题答案: 您可以使用否定伪类:not()对:last-child伪类。正在被引入CSS选择器3级,它不适用于IE8或更低版本:

  • 实现一对多关系并选择父项和子项我有一个关系,我想进行查询(选择*) 文件夹。JAVA 作者。JAVA 我的请求: 我得到了这样的结果: 我的代码有什么问题?什么是问题,当我执行查询我得到了这个结果...我想得到这个结果

  • 我不能执行这个声明。

  • 问题内容: 我有这个数据结构,在这里组织待办事项以遵循路径/ todos / uid / 我想查询待办事项以获取所有记录。使用firebase(angularfire)是否可能,我应该怎么做?还是我应该进一步规范化并安排路径/私人路线,以免走下待办事项? 问题答案: Firebase中没有子句。请查看此线程,以获取有关按多个字段进行搜索的一些出色的结构性技巧,有关数据库样式查询的该线程,有关查询的