У меня есть только одна таблица в базе данных с именем Студент . Ниже сущность jpa против этого в моем коде:
@Entity
@Table(name = "student")
public class Student{
@Id
private Long id;
@Column
private String firstName;
@Column
@Embedded
@JsonUnwrapped
private School school;
}
public class School{
private Integer grade;//eg. 2nd, 3rd
private String type; //eg. primary, secondary
}
До настоящего времени код предназначался только для извлечения всех учащихся и их данных или для извлечения конкретного ученика. Итак, схема БД была такой. Но теперь у нас появилась новая функциональность, в которой нам нужно искать на основе определенной оценки и выбирать всех учащихся для этой конкретной оценки. ИЛИ получить всех учащихся для определенного типа школы, например. все ученики начальной школы Таким образом, требование полностью изменилось, так что нам нужно отправить возвратную схему ниже к внешнему интерфейсу:
class SchoolResponseDTO{
private String schoolType;
private List<Integer> grades;
}
class Grade{
private Integer id;
private List<Integer> studentId;
}
Чтобы быть немного многословным, отныне нам нужно найти все типы школ, затем все оценки в этих типах школ, а затем всех учащихся в этом типе и классе школы.
До сих пор мы использовали Spring JpaRepository для наших требований. Я чувствую, что это новое требование потребует пользовательских запросов, и я не думаю, что это может быть выполнено прямым способом с использованием JPARepository. Мне просто нужно знать, что ты думаешь. Можно ли это сделать без пользовательских SQL-запросов?