一般的な基準クエリがあり、同じレコードが返されます。生徒の保存方法に問題があると思います。これが私の保存方法です。
Student student = new Student();
student.setId(Utility.generateUUID());
student.setClassroom(selectedClassroom);
student.setUrl(urlAddress);
genericService.save(student);
データテーブルからすべてのクラスルームを取得しようとすると、同じ 3 つのクラスルーム オブジェクトが返されますが、クラスルーム テーブルには 1 つのレコードしかありません。問題は、Classrooms がこの Classroom レコードを参照している 3 つの Student レコードがあることです。
私の基準クエリ;
@Transactional(readOnly = true)
public <T> List<T> getByTemplate(T templateEntity) {
Criteria criteria = getCurrentSession().createCriteria(templateEntity.getClass());
criteria.add(Example.create(templateEntity));
return criteria.list();
}
エンティティ;
public class Classroom{
....
@OneToMany(mappedBy = "classroom", fetch = FetchType.EAGER)
private List<Student> studentList;
}
public class Student{
@JoinColumn(name = "classroom", referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private Classroom classroom;
}