是否可以使用非实体对象和来自HQL查询的1:n关系创建对象层次结构?
注意:使用命名空间完全限定时创建Analysis对象没有问题。唯一的问题是通过subselect与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
所以我基本上希望能够在实体的对象中生成报告:
表=&gt; SomeTable,SomeTable
像:
分析=&gt;子分析,子分析
真正的查询涉及更多的求和和加入。
答案 0 :(得分:0)
创建Analysis对象应该是可能的,虽然我不确定你是否必须使用FQCN,因为Hibernate必须知道要使用的确切类。对于SubAnalysis对象和关联,我不确定,文档没有明确告诉我们(或者我只是盲目;))。