【发布时间】:2011-07-22 19:02:56
【问题描述】:
是否可以使用非实体对象和来自 HQL 查询的 1:n 关系创建对象层次结构?
注意:使用命名空间完全限定时创建分析对象是没有问题的。唯一的问题是通过子选择关联到 SubAnalysis 对象。
类:
public class Analysis
{
public List<SubAnalysis> relatedAnalysis;
public Long someSum;
public Analysis(Long someSum, List<SubAnalysis> relatedAnalysis)
{
this.someSum = someSum;
this.relatedAnalysis= relatedAnalysis;
}
}
public class SubAnalysis
{
public String info;
public SubAnalysis(String info)
{
this.info = info;
}
}
HQL:
select new Analysis(sum(t.value),
(select new SubAnalysis(x.info)
from SomeTable x
where x.t = t))
from Table t
where t.id = :id
group by t
所以我基本上希望能够为实体生成对象报告:
表 => 一些表,一些表
喜欢:
分析 => 子分析,子分析
真正的查询涉及更多的求和和连接。
【问题讨论】: