Java 如何在hql查询中选择对象的一部分?
我需要优化性能查询。对象树,如:Java 如何在hql查询中选择对象的一部分?,java,hibernate,join,hql,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个对象? 谢谢。会的 List<Object[
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个对象?
谢谢。会的
List<Object[]> list = new ArrayList<Object[]>();
List List=new ArrayList();
它将是
List<Object[]> list = new ArrayList<Object[]>();
List List=new ArrayList();
查询将返回的结果类型为-
List<Object[]>
列表
查询将返回的结果类型为-
List<Object[]>
列表
如果您使用HQL,我认为您使用的是hibernate。提供与对象的关系映射(多通或单通):
class A {
@ManyToOne
pribvate B b;
@OneToOne
private C c;
}
然后使用会话方法通过hql条件查询选择对象。Hibernate自动为您执行所有连接。如果您使用HQL,它将返回一个列表。,我认为您使用的是hibernate。提供与对象的关系映射(多通或单通):
class A {
@ManyToOne
pribvate B b;
@OneToOne
private C c;
}
然后使用会话方法通过hql条件查询选择对象。Hibernate自动为您执行所有连接。它将返回A的列表。还有一件事,如果我得到您需要的,这个查询应该是这样的。。选择a.id=b.fk上的类a左外部联接类b上的a.field1、b.field2、c.field3、c.field4左外部联接类c上的b.id=c.fk还有一件事,如果我得到您需要的,这个查询应该是这样的。。选择a.id=b.fk上的ClassA左外部联接ClassB上的a.field1、b.field2、c.field3、c.field4左外部联接ClassC上的b.id=c.fk有时返回的数据太多,这是最初的问题。这个解决方案和manurajhada提出的一样,被称为标量选择。有时返回的数据太多,这是最初的问题。解决方案与manurajhada提出的完全一样,称为标量选择。