She*_*ari 6 java hibernate criteria jbpm hibernate-criteria
我正在写一个非常简单的查询,但由于某种原因我得到重复的值.
Criteria cr = session.createCriteria(ProcessInstance.class, "p")
.add(Restrictions.isNull("end"));
@Cleanup ScrollableResults sr = cr.scroll(ScrollMode.FORWARD_ONLY);
while (sr.next()) {
pi = (ProcessInstance) sr.get(0);
String id = pi.getId(); //Getting duplicate values
}
Run Code Online (Sandbox Code Playgroud)
在pi.getId()返回重复值.即:*9,9,10,10,11,11 etc*
但是,直接在mysql中运行此查询
SELECT * FROM JBPM_PROCESSINSTANCE J where J.END_ IS NULL
Run Code Online (Sandbox Code Playgroud)
不返回重复值.
谁能发现什么是错的?
Ral*_*lph 17
快速工作周期将是使用不同的根实体结果变换器.
...
crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
List unique = crit.List();
...
Run Code Online (Sandbox Code Playgroud)
但这只是一个问题.
我问问题属于你的映射.如果从ProcessInstance到其他东西(称为X)有任何急切加载的1:n关系,并且一个ProcessInstance有几个(n)X,那么您将在结果列表中获得单个ProcessInstance项目(n) processInstance的. - 如果这真的是原因,那么工作场所不仅仅是一个工作场所,那么它就是解决方案.