我正在将JPA用于项目,并且在大多数情况下,想要获取实体,但是有一些情况(报告是其中之一,但还有其他情况)我不想要或不需要获取实体,而是想要选择价值观。 JPA是否支持此功能?如果是这样,使用它是否有意义,或者在这些情况下使用直接JDBC是否有意义?
答案 0 :(得分:8)
Q1: 是的,确实如此。
这就是所谓的标量查询,例如:
select u.name from User u
而不是
select u from User u
Q2: 说到使用它的意义: 这样的查询很有意义 - 你只需要一个属性而不是整个对象。但是,如果您打算让所有查询仅获取单独的值,那么问题是“为什么?”似乎有效。 O / R映射器的整个想法是允许您操作对象,而不是(相关)表和ID。因此,使用JPA获取ID通常没有意义。一旦将对象映射到数据库,就可以更容易地对数据进行操作。
答案 1 :(得分:0)
SQLResultsetMappingWithAlias似乎提供了您正在寻找的示例。