我在 Vue js vue-good-table 中应该有分页、排序和过滤。
从前端到后端,我传递了以下对象:
@Getter
@Setter
@NoArgsConstructor
public class PagingParams {
private String searchTerm;
private LinkedHashMap<String, String> columnFilters;
private LinkedHashMap<String, String> sort;
private int page;
private int perPage;
}
目前分页和排序工作正常:
Pageable pageable = PageRequest
.of(pagingParams.getPage(), pagingParams.getPerPage(), Sort.by(direction, field));
Page<Incident> allIncidents = incidentRepository.findAll(pageable);
public interface IncidentRepository extends PagingAndSortingRepository<Incident, Long> {
...}
但是如何进行过滤呢?我的表有 8 列,在这些列的顶部,我可以输入一些数据以按不同的列进行过滤。编写大量查询以满足不同参数的不同查询需求是没有意义的。根据不同的过滤器参数创建动态查询的最简单方法是什么?例如,我必须按 param1 和 param2 过滤。其他时候,我可以从前端 param4 和 param5 获取这些字段进行过滤...