我有一个通用条件查询,它会返回相同的记录。我认为我的学生保存方法有问题。这是我的保存方法;休眠条件示例查询获取多条记录
Student student = new Student();
student.setId(Utility.generateUUID());
student.setClassroom(selectedClassroom);
student.setUrl(urlAddress);
genericService.save(student);
当我试图从数据表,它返回3教室对象,该对象是相同的,但只有一个在课堂表记录所有教室。问题是有3个学生记录哪个教室引用了这个课堂记录。
我的标准查询;
@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;
}
你为什么要手动设置'student'' id,你不让'Hibernate'为你管理它? – Atropo