SQL запрос к спецификации JPA - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть эти упрощенные объекты 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 и CriteriaBuilder?

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

1 Ответ

0 голосов
/ 17 февраля 2020

Это должно быть что-то вроде:

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

У меня нет возможности проверить это

Редактировать: это с использованием EntityManager # createQuery (String)

...