Я играю с Ваадином и сейчас пытаюсь добавить фильтр к Grid
, который получает данные через JPA и MySQL БД. Это должно быть очень просто, и я строго следую приведенным примерам здесь . Кажется, все идет хорошо, пока я не получу одноименное сообщение об ошибке.
Вот так я настроил передачу данных класса.
@Autowired
CoreRepository crp;
@Id("descriptionFilter")
private TextField descriptionFilter;
List<db> list = crp.findAll();
ListDataProvider<db> ldp = DataProvider.ofCollection(list);
grid.setDataProvider(ldp);
И фильтрация:
/* Filtration */
descriptionFilter.addValueChangeListener( e->
{
Notification.show(e.getValue());
ldp.addFilter(desc ->
{
StringUtils.containsIgnoreCase(desc.getFileDescription(), descriptionFilter.getValue()); //<< I get the error here
});
});
descriptionFilter.setValueChangeMode(ValueChangeMode.EAGER);
Однако я получаю эту ошибку и не понять, как это происходит
Метод addFilter (SerializablePredicate) в типе InMemoryDataProvider не применим для аргументов ((des c) -> {})
Что я мог делать не так?