如何在 JPA Criteria API 中投影单个列?

How do I project a single column in JPA Criteria API?

我需要查询 table 并且只投影 1 列。在 Hibernate Criteria API 中有 Projections class 这样的东西。但是 Hibernate Criteria API 现在已被弃用,我需要切换到使用 JPA Criteria API。我知道以下机会:

cb.construct(EmpMenu.class,
      c.get("name"), c.get("department").get("name"));

但问题是我只需要检索 1 属性。在上面的这种方法中,我会为了映射而创建一个虚拟对象包装器。我会在那里定义所需的字段,它会起作用。

但是有没有更清晰的方法呢?谢谢!

互联网上有很多 JPA 标准文档对此进行了解释。例如 this one。简单来说你select字段的路径,像这样

Path nameField = candidateRoot.get(Person_.name);
crit.select(nameField);