控制器:
@RequestMapping(path = "/serviceslist", method = RequestMethod.GET)
public Page<ServiceResponse> getServicesList(
@RequestParam(defaultValue = "0") Integer page,
@RequestParam(defaultValue = "10") Integer size,
@RequestParam(required = false) String search,
@RequestParam(required = false) String name,
@RequestParam(required = false) String jobs,
@RequestParam(required = false) Boolean needsPatrol,
@RequestParam(defaultValue = "createTime") String sort,
@RequestParam(defaultValue = "asc") String sortDir
) {
ServiceListRequest request = new ServiceListRequest(search, name, jobs, needsPatrol);
Sort.Direction direction;
if (sortDir.equals("asc")) {
direction = Sort.Direction.ASC;
} else {
direction = Sort.Direction.DESC;
}
return serviceService.getServicesList(request, of(page, size, direction, sort))
.map(ServiceResponse::new);
}
服务:
@Entity
@Data
@Table(name = "service")
public class Service {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(unique = true, nullable = false, columnDefinition = "serial")
private Long id;
@Column(name = "name", nullable = false)
private String name;
@Column(name = "price", nullable = false)
private float price;
@Column(name = "season", nullable = false, columnDefinition = "season_enum")
@Enumerated(EnumType.STRING)
@Type(type = "pgsql_enum")
private SeasonEnum season;
)
}
一个服务可以有许多作业。
我试图实现的是按作业中的第一个项目对 ASC/DESC 进行排序,但目前,如果服务有 4 个作业,则在排序后使用以下方法进行排序:
localhost:8080/serviceslist?sort=jobs&sortDir=asc
它给了我4次服务,但我需要它与众不同。可分页是否有办法删除重复项并解决我的排序问题?
按名称和东西排序工作正常,只是工作部分坏了:/
编辑21.04.2019:如果我之前不太清楚,我很抱歉。理想的结果是按字母顺序对第一个作业进行排序,因为作业是按完成时间的顺序排列的。这有什么可能吗?提前致谢!
素胚勾勒不出你
红颜莎娜
梵蒂冈之花
相关分类