我不确定多选的作用。但是当处理 投影 时,您可以使用
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);



