DataTables服务器端按多对多关系对象进行过滤

时间:2017-09-13 11:20:14

标签: spring jpa datatables

我的应用程序中有一个datatables.net DataTable,它显示了表中的所有元素(类Action的所有实体)。这个类的属性是使用Spring JPA映射为List Region @ManyToMany的{​​{1}},我希望能够按Region进行过滤所有数据。因此,如果我选择Region的A,B和D,则只显示适用于至少其中一个Action的{​​{1}}(例如Action 1适用于Region s B和C)

所以控制器,看起来像这样......

@JsonView(value={DataTablesOutput.View.class})
@ResponseBody
@RequestMapping(value = "/rest/actions_datatable", method = RequestMethod.GET, produces = "application/json")
public DataTablesOutput<Action> getActions(@Valid DataTablesInput input, HttpServletRequest request) {
    DataTablesOutput<Action> actions_datatable = actionService.getActions(input);
    String[] regionIdsToFilter = request.getParameter("regionfilter").split("[,]");
    return actions_datatable;
}

这是我的服务

@Override
public DataTablesOutput<Action> getActions(DataTablesInput input) {
    return actionRepository.findAll(input);
}

作为注释,ActionRepository扩展了DataTablesRepository

接收我想用来过滤我的操作的区域的ID,以及Javascript代码发送的DataTablesInput对象。

实现这一目标的最佳方法是什么?如果我试图过滤的字段是一个简单的字符串,或者甚至是一个对象,那会更容易,但是它们的列表对我来说确实看起来有点困难。

0 个答案:

没有答案