我正在使用spring-hibernate並使用HibernateDAOSupport類。 我有兩個表以一對多的方式相互映射。 我執行以下標準帶投影的休眠條件不會返回實現條件的實體
DetachedCriteria criteria = getCriteria("a")
.setProjection(Projections.projectionList()
.add(Projections.groupProperty("a.id"))
.add(Projections.count("a.id"), "count")
)
.createCriteria("huApps", "hu")
.addOrder(Order.desc("count"))
;
這種運作良好,並創建下面的查詢
select
this_.id as y0_,
count(this_.id) as y1_
from
apps this_
inner join
huapps huapp1_
on this_.id=huapp1_.appid
group by
this_.id
order by
y1_ desc
在結果,它返回的object[]
列表。但我希望它應該返回List<App>
(應用程序是我實現/創建標準的類)。 我希望它會創建查詢
select
this_
from
apps this_
inner join
huapps huapp1_
on this_.id=huapp1_.appid
group by
this_.id
order by
y1_ desc
請幫我寫出正確的標準。 我也試過sqlProjection()
,但即使這樣也行不通。 有什麼辦法可以做到這一點?
試過但沒有運氣。 – Rites
再次創建相同的查詢選擇 this_.id如y0_, 計數(this_.id)作爲y1_ 從 ChleonCloudVault.apps THIS_ 內部聯接 ChleonCloudVault.huapps通過huapp1_上this_.id = huapp1_.appid 組 this_.id order by y1_ desc – Rites
如何生成此sql? 這段代碼是'detachedCriteria.getExecutableCriteria(getSession()).list()'返回'List'類的實例,但是我指定了所需類型的泛型 – Yappie