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

时间:2018-10-10 08:30:25

标签: java hibernate jpa hibernate-criteria criteria-api

我需要查询一个表并仅投影1列。在Hibernate Criteria API中,有Projections类之类的东西。但是Hibernate Criteria API现在已被弃用,我需要切换到使用JPA Criteria API。我知道以下机会:

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

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

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

1 个答案:

答案 0 :(得分:1)

互联网上有很多JPA Criteria文档对此进行了解释。例如this one。简单来说,您可以选择字段的路径,就像这样

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