问题描述
我想在Hibernate JPA中执行以下查询。
select distinct count(*)
from (
select distinct entity1.CODE as col_0_0_,string_agg(entity2.PRODUCT_IMAGE_URL,',') as col_1_0_,count(entity1.CODE) as col_2_0_
from entity1
inner join entity2 on entity1.id = entity2.entity1_ID
where entity1.id = 1
group by entity1.CODE
) as cnt;
任何想法我将如何使用Criteria API做到这一点?
解决方法
您将需要以下内容:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> criteriaQuery = cb.createQuery(Long.class);
Root<Entity1> root = criteriaQuery.from(MyEntity.class);
criteriaQuery.select(criteriaBuilder.countDistinct(entityRoot.get("code")));
Long count = entityManager.createQuery(criteriaQuery).getSingleResult();