可以/应该使用JPA来返回值而不是实体吗?

Tim*_*Tim 2 java jpa jdbc

我正在将JPA用于项目,并且在大多数情况下,想要获取实体,但是有一些情况(报告是其中之一,但还有其他情况)我不想要或不需要获取实体,而是想要选择的价值观.JPA是否支持此功能?如果是这样,使用它是否有意义,或者在这些情况下使用直接JDBC是否有意义?

Grz*_*zki 8

Q1:是的,确实如此.

它就是所谓的标量查询,例如:

select u.name from User u 
Run Code Online (Sandbox Code Playgroud)

而不是

select u from User u
Run Code Online (Sandbox Code Playgroud)

Q2:说到使用它的意义:这样的查询有意义 - 你只需要一个属性而不是整个对象.但是,如果您打算让所有查询仅获取单独的值,那么问题是"为什么?" 似乎有效.O/R映射器的整个想法是允许您操作对象,而不是(相关)表和ID.因此,使用JPA获取ID通常没有意义.将对象映射到数据库后,您应该更容易对数据进行操作.