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