3
是否可以使用HQL查詢創建具有非實體對象和1:n關係的對象層次結構?使用HQL選擇從子選擇中創建對象列表
注意:使用命名空間完全限定時,創建Analysis對象是沒有問題的。唯一的問題是通過sublect到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
所以我基本上希望能夠生成對象的實體的報告:
表=> SomeTable,SomeTable
贊好:
分析=>子分析,子分析
真正的查詢涉及更多的求和和連接。
啊,是的,創建分析對象的作品。只有SubAnalysis協會和文件沒有告訴任何有關這個問題。 – abp 2011-03-25 10:01:43
您是否已經嘗試使用一個小例子? – Thomas 2011-03-25 10:23:48
是的,獲取SubAnalysis的列表是沒有問題的,但hibernate似乎無法爲Analysis對象找到合適的c'tor。但是我不知道除了列表,SubAnalysis []或Object []之外它還有什麼可以等待。 –
abp
2011-03-25 10:33:55