Как остановить спящий режим, чтобы сделать выбор перед вставкой в дочернюю таблицу в сопоставлении многие-к-одному?
У меня есть ученический стол:
@Entity
@Table
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
@IdClass(StudentId.class)
public class Student implements Persistable<StudentId> {
@Id
private String studentUuid;
@Id
private String studentName;
@Column
private String sex;
public Student(String studentUuid,String studentName){
this.studentUuid = studentUuid;
this.studentName = studentName;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(
name = "classUuid",referencedColumnName = "classUuid"),
@JoinColumn(
name = "className",referencedColumnName = "className")
})
private Class className;
@Override
public StudentId getId() {
return new StudentId().builder().studentName(studentName).studentUuid(studentUuid).build();
}
@Override
public boolean isNew() {
return true;
}
}
У меня есть таблица классов:
@Entity
@Table
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
@IdClass(ClassId.class)
public class Class implements Persistable<ClassId> {
@Id
private String classUuid;
@Id
private String className;
@Column
private String classRoomNo;
@Column
private String classSize;
@OneToMany(mappedBy = "className",cascade = CascadeType.ALL,fetch = FetchType.LAZY)
private List<Student> studentList;
@Override
public ClassId getId() {
return new ClassId().builder().className(className).classUuid(classUuid).build();
}
@Override
public boolean isNew() {
return true;
}
}
Всякий раз, когда я делаю studentRepo.save (studentEntity), он всегда выбирает из родительского класса, то есть таблицы классов, тогда, если данные существуют в родительской таблице, они вставляются в дочернюю таблицу, то есть студент.
Это не может произойти в одном сетевом вызове, вместо того, чтобы нажать два вызова, сначала выберите из родительского, а затем вставьте.