protected final void setEntityParam(Query query, String paramName, Object viewRootId) { EntityManager em = criteriaBuilder.getEntityManager(); if (viewRootId instanceof Collection) { Collection<Object> paramCollection = (Collection<Object>) viewRootId; List<Object> viewRootEntities = new ArrayList<Object>(paramCollection.size()); for (Object paramValue : paramCollection) { if (paramValue != null) { viewRootEntities.add(em.getReference(viewRootEntityType, paramValue)); } } criteriaBuilder.setParameter(paramName, viewRootEntities); query.setParameter(paramName, viewRootEntities); } else { Object viewRootEntity = em.getReference(viewRootEntityType, viewRootId); criteriaBuilder.setParameter(paramName, viewRootEntity); query.setParameter(paramName, viewRootEntity); } }
this.criteriaBuilder = queryBuilder.getCriteriaBuilderFactory().create(queryBuilder.getEntityManager(), Object[].class); if (queryBuilder instanceof CTEBuilder<?>) { this.criteriaBuilder.withCtesFrom((CTEBuilder<?>) queryBuilder);