Complex Activiti + JPA查询

时间:2012-11-13 15:38:23

标签: java jpa jbpm activiti

我们正在尝试在新项目中使用Activiti。我已经创建了一个使用Hibernate通过JPA的设置,用于持久化参与该过程的实体,JPA与Activiti互连,因此我们可以将这些实体用作JPA变量。请参阅:JPA chapter of Activiti's documentation

我发现Activiti不允许我在涉及JPA变量的进程上创建查询,我想在JPA实体字段上进行过滤。例如,如果我的进程具有引用Book实体的变量,则无法为具有特定标题的书籍的进程创建查询。

克服这个问题的最佳方法是什么?我虽然单独使用Hibernate查询实体,然后在Activiti上进行第二次查询以获得所涉及的过程但是我担心它会很慢。另外,如果我正在反过来(首先查询进程然后在实体上使用Hibernate进行第二次查询)Activiti做了不必要的JPA变量填充,我无法找到如何只获取实体ID保存到我的数据库的Activiti变量表中。

2 个答案:

答案 0 :(得分:0)

将您实体的ID用作流程的businessKey怎么样?

然后,您可以对您的实体(具有特定标题的书籍)进行查询,然后使用它来检索Activiti中的流程

答案 1 :(得分:0)

我已经实现了问题评论中描述的解决方案。我还没有一个大的数据集来测试性能,但似乎可以接受。