Activiti - HistoricTaskInstanceQuery, поиск по свойству переменной, которая является сущностью JPA

У меня есть задача с переменной, которая является сущностью JPA.

API HistoricTaskInstanceQuery предоставляет только поиск по самой сущности:

query.processVariableValueEquals("entity", entity);

Моя цель - поиск по атрибутам сущности, что-то вроде (псевдокод):

query.processVariableAttributeEquals("entity", "entity.subEntity.name", name)

Как мне этого добиться?

1 ответ

Решение

Там нет выхода из коробки, чтобы сделать это. Варианты для рассмотрения:

  1. Постобработка результирующего набора с использованием чего-то вроде итератора для генерации списка идентификаторов сущностей и последующего использования пользовательского запроса к таблицам сущностей. Это скорее сельскохозяйственный, но, вероятно, ваш самый быстрый маршрут.
  2. Создайте свой собственный пользовательский запрос MyBatis, используя описанный здесь подход: https://www.activiti.org/userguide/ и здесь: http://www.jorambarrez.be/blog/2014/01/17/execute-custom-sql-in-activiti/

Вариант 2, вероятно, лучший вариант для вас, но это немного больше работы.

Greg

Другие вопросы по тегам