У меня проблема с отображением пружинных данных jdbc:
Student
сущность:
@Value(staticConstructor = "of")
public class Student {
private final @Id
@Wither
long studentId;
@NotNull
@Size(min = 4, max = 20)
private String userId;
@NotNull
@Min(0)
private int matriculationNumber;
@NotNull
@Email
private String eMail;
private @Wither
Set<StudentSubjectRegistration> studentSubjectRegistrations;
}
Далее у меня есть StudentSubjectRegistration
сущность:
@Value(staticConstructor = "of")
public class StudentSubjectRegistration {
@NotNull
private String electiveType;
@NotNull
private LocalDateTime created;
@NotNull
private long subjectid;
}
Когда я запускаю тест, чтобы найти одного конкретного студента, как показано здесь:
@Test
public void findOneStudent() throws InterruptedException, ExecutionException {
long studentId = 2L;
Future<Student> student = studentService.findById(2L);
while (!student.isDone()) {
Thread.sleep(100);
}
assertThat(student.get()).isNotNull();
assertThat(student.get().getStudentId()).isEqualTo(studentId);
}
Консоль говорит, что выпущено одно заявление sql: Executing prepared SQL statement [SELECT student.studentid AS studentid, student.userid AS userid, student.matriculationnumber AS matriculationnumber, student.email AS email FROM student WHERE student.studentid = ?]
Что касается моего понимания, то должен быть другойВыдается SQL-запрос для извлечения связанных регистраций, не так ли?
Вместо этого происходит исключение: java.lang.IllegalStateException: Required identifier property not found for class de.thd.awp.student.StudentSubjectRegistration!
Нужно ли моделировать StudentSubjectRegistration
с * 1022?*?
StudentSubjectRegistration
не должно быть агрегированным корнем.Это должна быть ссылка из Student
, где сохраняются его регистрации.
Я что-то упустил?
Обратите внимание, кроме того, на мои попытки смоделировать неизменность сущности, вдохновленные этим сообщением в блоге https://spring.io/blog/2018/09/27/what-s-new-in-spring-data-lovelace ...
Я все делаю правильно?
Спасибо за вашу помощь!