我有实体 Market
和 Event
。 Market
实体有一列:
@ManyToOne(fetch = FetchType.EAGER)
private Event event;
接下来我有一个代码仓库:
public interface MarketRepository extends PagingAndSortingRepository<Market, Long> {
}
和一个投影:
@Projection(name="expanded", types={Market.class})
public interface ExpandedMarket {
public String getName();
public Event getEvent();
}
使用REST查询/api/markets?projection=expanded&sort=name,asc
成功获取按市场名称排序的带有嵌套事件属性的市场列表:
{
"_embedded" : {
"markets" : [ {
"name" : "Match Odds",
"event" : {
"id" : 1,
"name" : "Watford vs Crystal Palace"
},
...
}, {
"name" : "Match Odds",
"event" : {
"id" : 2,
"name" : "Arsenal vs West Brom",
},
...
},
...
}
}
但是我需要按事件名称排序的市场列表,我尝试了查询/api/markets?projection=expanded&sort=event.name,asc
,但它没有起作用。我该怎么做才能使其起作用?
@JsonProperty(access = READ_ONLY)
。删除此注释可导致该嵌套属性的正确排序行为。 - jensfischerhh