JPA如何获得一些字段并非所有字段

时间:2014-03-31 05:58:06

标签: java jpa

我有主表和详细信息表
  1- master -Employee(id int primary Key,name varchar2,address_Id int foreign key)
  2- details- Address(id int primary key,block varchar2,building varchar2,area varchar2)

我使用JPA获取Object,我想要一些不是所有字段,我想要  (Employee.id,Employee.name,Address.area)
所以如何在不获取所有字段的情况下执行此操作?
  感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用查询来执行此操作:

select e.id, e.name, a.area from Employee e left join e.address a where ...

此类查询将返回List<Object[]>,其中每个对象数组包含三个选定元素。

但是,通过仅选择那些字段,您可能无法获得任何收益,因为执行数据库查询时通常需要查找要检索的数据并执行表之间的连接。您最好继续使用您的实体,并使用以下查询,它将返回Employee实例,其地址已加载:

select e from Employee e left join fetch e.address where ...

这将返回List<Employee>

答案 1 :(得分:0)

我知道这有点晚了,但是如果有人也可能遇到这个问题,我仍然想回答:你有没有考虑尝试像懒惰和渴望这样的获取类型?通过这些,您可以获得所有直接标记为“渴望”的字段,“懒惰”字段被提取