Комплексные запросы Activiti + JPA
Мы пытаемся использовать Activiti в новом проекте. Я создал установку, которая использует Hibernate через JPA для сохранения сущностей, участвующих в процессе, и JPA взаимосвязана с Activiti, поэтому мы можем использовать эти сущности в качестве переменных JPA. Смотрите: JPA глава документации Activiti
Я обнаружил, что Activiti не позволяет мне создавать запросы к процессам, которые включают переменные JPA, где я хотел бы фильтровать поля сущностей JPA. Например, если у меня есть процессы с переменной, ссылающейся на сущности Book, я не могу создать запрос для процессов, у которых есть книга с определенным названием.
Какой лучший способ преодолеть это? Я думаю о том, чтобы запросить объекты по отдельности с помощью Hibernate, а затем выполнить второй запрос на Activiti, чтобы задействовать процессы, однако, боюсь, это будет медленным. Кроме того, если я делаю это наоборот (сначала запрашиваю процессы, а затем выполняю второй запрос с Hibernate для сущностей), Activiti выполняет бесполезное заполнение переменных JPA, и я не могу узнать, как получить только идентификатор сущности. который сохранен в таблицу переменных Activiti моей базы данных.
2 ответа
Я реализовал свое решение, описанное в комментариях к вопросам. У меня пока нет большого набора данных для тестирования производительности, но это кажется приемлемым.
Как насчет использования идентификатора вашей организации в качестве businessKey вашего процесса?
Затем вы можете сделать запрос к вашим сущностям (Книги с определенными заголовками), а затем использовать его для получения ваших процессов в Activiti.