我的查询是:
query1 =从entity1 a中选择a.id,其中a.id在(:List1)中
并且不存在(从实体2 ex2中选择ex2,其中ex2.assignedId = a.id)
工会
从entity2 ex,entity3 pi中选择ex.assignedId
其中ex.entity3Id = pi.id和ex.assignedId in(:List1)
和ex.assignedTypeId =:assignedTypeId和pi.processStatus =:status
并不存在
(从entity2 ex1,entity3 pi1中选择ex1.assignedId
其中ex1.entity3Id = pi1.id和ex1.assignedId = ex.assignedId
和ex1.assignedTypeId =:assignedTypeId
和pi1.processStatus<> :状态);
并且在尝试执行查询时,
查询existingIds = em.createQuery(query1); //设置所有参数
在org.hibernate.hql.ast.ParameterTranslationsImpl的第87行抛出NullPointerException
完全检查了所有大括号和参数。等效转换在mysql中有效。 有人可以协助我使用CriteriaBuilder转换查询,发现很难进行转换。