如何在hql查询中选择对象的一部分?

时间:2012-05-31 06:33:52

标签: java hibernate join hql

我需要调整查询性能。对象树如:

classA {
 classB b;
 classC c;
.....}

我需要选择类似于SQL:

select a.field1, b.field2, c.field3, c.field4 from a left outer join b 
  on a.id=b.fk left outer join c on b.id=c.fk

我不明白将返回什么样的结果,是否为arrayList?或查询返回 所有3个对象? 感谢。

3 个答案:

答案 0 :(得分:2)

将是

List<Object[]> list = new ArrayList<Object[]>();

答案 1 :(得分:2)

查询返回的结果将是 -

的类型
 List<Object[]>

答案 2 :(得分:1)

如果你使用HQL我认为你使用hibernate。提供与关系的映射(ManyToOne或OneToOne):

class A {

    @ManyToOne
    pribvate B b;

    @OneToOne
    private C c;
}

然后使用会话方法通过hql查询条件选择对象A. Hibernate会自动为您完成所有连接。它将返回A的列表。