查询数据库并根据 entity.fieldA 对结果集进行排序时遇到问题。
例如,在学校环境中(学生、教师)。我有很多学生的老师。
//Student class
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TEACHER_ID")
private Teacher teacher;
我希望我的查询按teacher.name 排序,但只有老师可以从我这里获得。
所以有查询:
FROM Student s ORDER BY s.teacher;
即使我对老师实施可比性,它也不起作用:
@Override
public int compareTo(Teacher o) {
return getName().compareTo(o.getName());
}
我的查询:
from Student a left join fetch a.teacher where a.xid=:xxx ORDER BY a.teacher ASC
我有一个框架,这就是为什么我无法按 a.teacher.name 排序的原因,所以我问是否即使使用 a.teacher 并实现 Comparable 接口,也可以实现按 a.teacher.name 排序。
这个问题来自延迟加载的数据表,当您单击实体列进行排序时,它只会给您实体名称而不是字段。
任何想法?