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

时间:2009-11-17 19:18:39

标签: java jpa jdbc

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

2 个答案:

答案 0 :(得分:8)

Q1: 是的,确实如此。

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

select u.name from User u 

而不是

select u from User u

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

答案 1 :(得分:0)

java2s.com上的

SQLResultsetMappingWithAlias似乎提供了您正在寻找的示例。