Загрузить изображение для проекта: 'Citeck Community'
  1. Citeck Community
  2. ECOSCOM-4624

Develop universal predicate to specification converter

    XMLWordДля печати

Детали задачи

    • Icon: История История
    • Решение: Готово
    • Icon: High High
    • Community 4.0rc6
    • Не заполнено
    • Не заполнено
    • Не заполнено

    Описание

      Проблема:

      Сейчас для преобразования из предикатов в JpaSpecification для выполнения поиска в БД почти во всех микросервисах написаны полу-рабочие реализации, которые очень ограничены в возможностях. Нужно написать универсальный конвертер для всех микросервисов и подключить его везде где нужен поиск по БД.

      Примеры реализаций:

      https://gitlab.citeck.ru/ecos-community/ecos-model/-/blob/master/src/main/java/ru/citeck/ecos/model/type/service/dao/TypeRepoDaoImpl.kt#L58

      https://gitlab.citeck.ru/ecos-community/ecos-history/-/blob/master/src/main/java/ru/citeck/ecos/history/service/impl/HistoryRecordServiceImpl.java#L282

      https://gitlab.citeck.ru/ecos-community/ecos-uiserv/-/blob/master/src/main/java/ru/citeck/ecos/uiserv/domain/board/service/BoardServiceImpl.java#L130

      Добавлять конвертер нужно в библиотеке 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“. Так же следует проверить корректность работы пагинации журналов в этих разделах.

      Вложенные файлы

        Активность

          Люди

            ug:05e18dcb-de6e-4ddf-8950-fdcbb0a12780 Denis Bagay [X] (Неактивный)
            elena.shushunova@citeck.ru Elena Shushunova
            Голоса:
            0 Голосовать за эту задачу
            Наблюдатели:
            3 Начать наблюдение за этой задачей

            Даты

              Создано:
              Обновленo:
              Дата решения:

              Учет времени

                Оценка:
                Первоначальная оценка - 2 недели
                2w
                Осталось:
                Оставшееся время - 0 минуты
                0m
                Затрачено:
                Затраченное время - 2 дни, 6 часы Незатраченное время
                2d 6h