【发布时间】:2020-05-12 13:59:54
【问题描述】:
我有 3 张桌子:
School
school_id, school_name, student_id
Student
student_id, student_name ,subject_id
Subject
subject_id, subject_name
School -> Student -> Subject 之间存在一对多关系,我只在该关系中创建了实体。
我正在编写specification 查询来获取特定学校的学生:
List<Student> students = schoolRepo.findAll(Specification.where (findStudents(schoolId));
public static Specification<Student> findStudents(long schoolId) {
return (root, query, cbuilder) -> {
root.fetch("students", JoinType.LEFT);
return cbuilder.and(cbuilder.equal(root.get("school"), schoolId));
};
}
虽然我没有在规范查询或代码中的任何地方获取主题(例如使用get)。
我仍然可以在生成的查询的日志中看到主题最终会被获取。
如何更新我的查询以仅限于学校和学生?
请提出建议。
【问题讨论】:
标签: java jpa specifications