【发布时间】:2021-07-21 15:51:14
【问题描述】:
我需要通过多对多关系对我的实体进行排序。
假设我的域如下:
@Entity
public class Field {
....
@ManyToMany
@JoinTable(name="field_crop", joinColumns={@JoinColumn(name="field_id")}, inverseJoinColumns = {@JoinColumn(name="crop_id")})
@OrderBy(value="name")
private List<Crop> crops;
....
}
@Entity
public class Crop {
....
private String name;
....
}
假设在我的域中我有以下数据:
- 归档1 { 作物:{柠檬} }
- 归档2 { 作物:{猕猴桃,杏子} }
- 归档3 { 作物:{杏子} }
- 归档4 { 作物:{鳄梨、香蕉} }
在@ManyToMany 关系上使用@OrberBy 注释,我将使列表中的Crop 元素按其名称排序:
- 归档1 { 作物:{柠檬} }
- 归档2 { 作物:{杏,猕猴桃} }
- 归档3 { 作物:{杏子} }
- 归档4 { 作物:{鳄梨、香蕉} }
获取所有Field实体的预期结果,按Crop实体的name属性排序,是:
Filed3Field2Field4Field1
我如何通过Hibernate Criteria做到这一点?
【问题讨论】: