2013-08-08 4 views
5

Ist es möglich, nur die erste Zeile (oder nur eine andere Zeile, aber nur eine Zeile) mit hql zu verbinden?Nur erste Zeile mit HQL verbinden

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) 

Dies ist der Code, den ich gerade jetzt, natürlich mit bin

min(deliveryType.id) 

funktioniert nicht. Die Beziehung zwischen mg.modelId und config.objectId ist nicht zugeordnet und deliveryType ist eine Liste. Ich kann keine eindeutige Ursache verwenden, die ich nach deliveryType bestellen kann (das ergibt keinen Sinn, aber ich muss es trotzdem machen) und modelGroupName.

Antwort

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) 
...