0
我有兩個實體具有以下字段:Combinate 2 HQL查詢
Application: applicationId, name, description, lastVersion (transient)
和
ApplicationVersion: applicationVersionId, application, versionName, creationDate
我試圖讓所有的應用程序的集合,並且,與一個或應用程序更多版本,請將ApplicationVersion的versionName與最新的creationDate放在瞬態字段lastVersion中。
在這等一下我有兩個HQL查詢,這樣做:
這一個讓所有無版本的應用程序:
SELECT a from Application a where a not in (select b.application from ApplicationVersion b)
這得到那些版本的最後一個版本:
select b from ApplicationVersion b where b.creationDate = (select max(bb.creationDate) from ApplicationVersion bb where bb.application = b.application)
執行這兩個操作後,我遍歷第二個結果集,並將這些應用程序及其最後的外部版本添加到第一個版本。
但我想combinate在這樣的兩個查詢(這是不工作):
select new foo.bar.Application(a.applicationId, a.name, a.description, b.version) from Application a, ApplicationVersion b where
(a not in (select bb.application from ApplicationVersion bb))
or
(a=b.application and b.creationDate = (select max(bb.creationDate) from ApplicationVersion bb where bb.application = b.application))
有沒有(有效的)的方式來combinate查詢和執行只有一個,而避免做迭代編程?