SQL查询到JPA规范

时间:2020-02-17 14:06:32

标签: sql hibernate jpa

我有这个简化的JPA实体

@Entity
@Table(name = "students")
public class Student {
    @Id
    private Integer id;

    private String name;

    //getters, setters
}

@Entity
@Table(name = "averages")
public class Averages {
    @Id
    private Integer id;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "student_id", referencedColumnName = "id")
    private Student student;

    private float value;

    //getters, setters
}

如何使用JPA Specification和CriteriaBuilder编写此查询?

SELECT students.id
FROM students,
     averages
WHERE averages.student_id = students.id
GROUP BY students.id
HAVING AVG(averages.value) > 6

1 个答案:

答案 0 :(得分:0)

应该是这样的:

select student.id 
from Averages average
join average.student student
group by student.id
having avg(average.value)>6

我无法对此进行测试

编辑:这是使用EntityManager#createQuery(String)