Технические характеристики JHipster Spring.Фильтрация отношения один ко многим по: «значениям в (несколько значений фильтра)».GetIn недоступен - PullRequest
0 голосов
/ 25 сентября 2018

Я работаю над списком пользователей для администраторов.Они будут фильтровать результаты по всем полям объекта «Пользователь».Единственное ограничение, которое у них будет, заключается в том, что они не смогут видеть пользователей с одной конкретной комбинацией ролей из-за защиты данных.

Я пытаюсь реализовать это с помощью комбинации двух спецификаций..

Первый получает все фильтры от внешнего интерфейса и фильтрует пользователей по их значениям.

Второй фильтрует список с помощью negationalSpecification, который возвращает всех пользователей, которые не имеликомбинация ролей: ROLE_USER (все пользователи имеют эту роль, чтобы иметь возможность войти в систему) и ROLE_FARMER (роль с защитой данных).

Здесь возникает проблема.Похоже, как JHipster реализует QueryService. Я не могу использовать две роли одновременно со значениями для отрицания.В этой функции нет if (filter.getIn ()! = Null):

<code>/**
 * Helper function to return a specification for filtering on one-to-many or many-to-many reference. Usage:
 * <pre>
 *   Specification&lt;Employee&gt; specByEmployeeId = buildReferringEntitySpecification(criteria.getEmployeId(),
 * Project_.employees, Employee_.id);
 *   Specification&lt;Employee&gt; specByEmployeeName = buildReferringEntitySpecification(criteria.getEmployeName(),
 * Project_.project, Project_.name);
 * 
* * @param filter объект фильтра, который содержит значение, которому необходимо соответствовать, или флаг, если пустота отмечена *,* @param ссылка на атрибут статической метамодели для ссылающейся сущности.* @param valueField - атрибут статической метамодели указанной сущности, где должно быть проверено равенство.* @param Тип ссылочной сущности.* @param Тип атрибута, который фильтруется.* @ вернуть спецификацию * / защищенСпецификация buildReferringEntitySpecification (Фильтр фильтр, SetAttributeссылка, SingularAttributevalueField) {if (filter.getEquals ()! = null) {return equalsSetSpecification (reference, valueField, filter.getEquals ());} else if (filter.getSpecified ()! = null) {return byFieldSpecified (reference, filter.getSpecified ());} return null;}

Я новичок в JHipster, так что, возможно, я что-то упускаю, но я вижу похожие проблемы, подобные этой:

Фильтрация не работает для некоторых типов и некоторых параметров Любая помощь будет очень признательна.

...