我有实体,其中包含一个Map字段。我需要按地图值对实体进行排序。我使用Spring-Data存储库。所以我将带有排序列表的PageRequest对象传递给findAll存储库方法。不幸的是,对Map字段进行排序会返回错误,该属性未定义(适用于所有其他字段) - 我厌倦了附加数据',' additionalData.key',' additionalData.value& #39 ;.我应该使用什么样的映射?
class Employee{
@Column
private String firstName;
@Column
private String lastName;
@ElementCollection
@Fetch(FetchMode.JOIN)
@CollectionTable(name="ADDITIONALDATA", joinColumns=@JoinColumn(name="EMP_ID"))
@MapKeyColumn(name="Key")
@Column(name="Value")
private Map<String, String> additionalData;
}
Sort.Order order = new Sort.Order(Sort.Direction.ASC, "additionalData");
Sort sort = new Sort(order);
PageRequest pageRequest = new PageRequest(0, 20, sort);
employeeRepository.findAll(pageRequest);