如何在 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);
我需要查询 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);