JPA 将列表<Tuple> 转换为列表<myClass>

JPA Convert List<Tuple> to List<myClass>

我有以下条件 API 代码 returns 列表。

我想将其转换为 List<myClass>

我该怎么做?

CriteriaQuery<Tuple> cq = cb.createTupleQuery();

Root<ProductCatalogue> pc = cq.from(ProductCatalogue.class);
Root<ProductList> al = cq.from(ProductList.class);
.......
.......
.......

Predicate[] predicates = new Predicate[predicateList.size()];
predicateList.toArray(predicates);
criteriaQuery.where(predicates);

TypedQuery<Tuple> typedQuery = getEntityManager().cq(criteriaQuery);
List<Tuple> tuple = typedQuery.getResultList();

理想情况下我愿意

List<Employee> emp = tuple

然而以上导致了不兼容的类型错误,我不知道我该如何转换它。

如果您坚持使用元组查询,则必须手动转换实例。
如果 myClass 是一个实体,您应该按照 perissf 的建议使用 CriteriaQuery< myClass>,否则您可以使用 "constructor expression" 直接从 select 创建实例,例如:

select new com...myClass(c.id, c.price) FROM ProductList c WHERE c.....;

有关使用条件 API 创建此类查询的示例,请参阅