2013-08-08 11 views
5

È possibile unire solo la prima riga (o qualsiasi altra riga ma solo una) usando hql?Unire solo la prima riga con HQL

select 
config.id, mg.modelGroupName, min(deliveryType.id) 
from 
NotificationConfig config, NotificationConfigEntry configEntry, SettlementModelGroup mg 
join 
configEntry.notificationConfigEntryPK.user user 
join 
configEntry.notificationConfigEntryPK.deliveryType deliveryType 
join 
config.notificationType notifType 
join 
notifType.objectType objectType 
where 
config.id = configEntry.notificationConfigEntryPK.notificationConfig.id 
and (mg.modelId = config.objectId or config.objectId is null) 

Questo è il codice che sto avendo in questo momento, naturalmente

min(deliveryType.id) 

non funziona. La relazione tra mg.modelId e config.objectId non è mappata e deliveryType è una lista. Non posso usare causa distinta che devo essere in grado di ordinare per deliveryType (questo non ha alcun senso, ma ho bisogno di farlo comunque) e modelGroupName.

risposta

0
 
select 
config.id, mg.modelGroupName, deliveryType.id 
from 
NotificationConfig config, NotificationConfigEntry configEntry, SettlementModelGroup mg 
join 
configEntry.notificationConfigEntryPK.user user 
join 
configEntry.notificationConfigEntryPK.deliveryType deliveryType with deliveryType.id = (select min(id) from configEntry.notificationConfigEntryPK.deliveryType) 
...