Детали задачи
-
История
-
Решение: Готово
-
High
-
Не заполнено
-
Не заполнено
-
Не заполнено
Описание
Проблема:
Сейчас для преобразования из предикатов в JpaSpecification для выполнения поиска в БД почти во всех микросервисах написаны полу-рабочие реализации, которые очень ограничены в возможностях. Нужно написать универсальный конвертер для всех микросервисов и подключить его везде где нужен поиск по БД.
Примеры реализаций:
Добавлять конвертер нужно в библиотеке ecos-webapp-commons/ecos-webapp-lib-spring-hibernate
Интерфейс конвертера:
interface PredicateJpaService { fun <T : Any> createSpec(predicate: Predicate, entityType: Class<T>): Specification<T> }
Если в предикате есть условия по несуществующим в entity полям, то следует такие предикаты игнорировать.
Для всех задач маппинга атрибутов следует использовать PredicateUtils.mapAttributePredicates.
В рамках задачи так же нужно поискать места по всем микросервисам с кастомной логикой конвертации predicate → specification и так же поменять там на универсальное решение из текущей задачи.
QA:
Проверить работу фильтров разделе администратора в подразделах “Управление системой“, “Модель“, “Конфигурация UI“. Так же следует проверить корректность работы пагинации журналов в этих разделах.
Вложенные файлы
Вложенные файлы
Связи запроса
- blocks
-
ECOSCOM-4812 Migrate JPA search to JpaSearchConverter in ecos-history
-
- New
-
-
ECOSCOM-4811 Migrate JPA search to JpaSearchConverter in ecos-notifications
-
- Готово
-
-
ECOSCOM-4810 Administration section. Form journal. Pagination works with redundant pages
-
- Готово
-
- Child of
-
ECOSCOM-4530 Filter by "ends" predicate does not work
-
- Сделать
-
- mentioned on