我不确定多选的作用。但是当处理 时,您可以使用CriteriaBuilder.construct()
创建MyClassDTO
喜欢的构造函数(如果需要,添加参数)
public MyClassDTO(EnumTileIcon icon, EnumProvenance provenance) {
this.icon=icon.toString();
this.provenance=provenance.toString();
}
在查询中调用构造函数,例如(如果需要,添加get参数以匹配构造函数参数)
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<MyClassDTO> cq = cb.createQuery(MyClassDTO.class);
Root<MyClass> root = cq.from(MyClass.class);
cq.select(cb.construct(MyClassDTO.class,
root.get("enumTileIcon"), root.get("enumProvenance")));
这样你就可以得到
TypedQuery<MyClassDTO> tq = em.createQuery(cq);