java - 如何使用 Hibernate Criteria API 通过多对多关系对实体进行排序?
问题描述
我需要通过多对多关系订购我的实体。
假设我的域如下:
@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 {作物:{柠檬}}
- Filed2 {作物:{猕猴桃,杏子}}
- 归档3 {作物:{杏}}
- Filed4 {作物:{鳄梨,香蕉}}
使用关系@OrberBy
上的注释@ManyToMany
,我将Crop
列表中的元素按其名称排序:
- 归档1 {作物:{柠檬}}
- Filed2 {作物:{杏,猕猴桃}}
- 归档3 {作物:{杏}}
- Filed4 {作物:{鳄梨,香蕉}}
按照 Crop 实体的 name 属性排序,获取所有 Field 实体的预期结果是:
Filed3
Field2
Field4
Field1
我如何通过Hibernate Criteria做到这一点?
解决方案
如果您在实体类Comparator
中的事件侦听器中编写并排序列表,那将是最好的。@PostLoad
推荐阅读
- android - Ubuntu 20.04 android studio 启动慢?
- python - 如何在数据框中大写首字母缩写词
- node.js - 如何分隔有和没有查询参数的路线?
- javascript - react-file-viewer 使任何文件都非常小
- google-cloud-platform - 计算引擎 Debian 中的错误 GTK 警告
- wordpress - Dokan 供应商向每个供应商添加简码
- javascript - 为什么带有 async/await 的 axios 在这种情况下不起作用?
- excel - VBA 代码在非英语系统中不起作用
- android - MapBox - PropertyFactory.iconImage() 带有在 MapBox Studio 上上传的自定义图标?
- swiftui - 延迟动画而不是使用计时器