Java JPA查询:选择最后一个孩子具有特定属性的所有家长
我猜下面的查询是如何通过JPQL编写的: 选择1-n关系中最后一个子关系的所有parentsside 1 最新id具有列属性的特定值。我的实体看起来像 Parent.javaJava JPA查询:选择最后一个孩子具有特定属性的所有家长,java,jpa,jpql,Java,Jpa,Jpql,我猜下面的查询是如何通过JPQL编写的: 选择1-n关系中最后一个子关系的所有parentsside 1 最新id具有列属性的特定值。我的实体看起来像 Parent.java @Entity class Parent { @Id @Column(name="ID_PARENT") @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy="parent") private L
@Entity
class Parent {
@Id
@Column(name="ID_PARENT")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@OneToMany(mappedBy="parent")
private List<Child> children;
}
JPQL会是什么样子?
谢谢大家它应该与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
)
)
这些帖子也很有用:
谢谢你,维托。但问题恰恰是将其转换为jpql。我假装做了那样的事情,但是没有本地查询,我无法理解如何使用jpa。
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
)
)