Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA查询:选择最后一个孩子具有特定属性的所有家长_Java_Jpa_Jpql - Fatal编程技术网

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

Java 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

我猜下面的查询是如何通过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 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
    )
  )