Nhibernate простой само присоединиться - PullRequest
1 голос
/ 30 октября 2011

У меня есть таблица с этими полями:

ID (Primary key)
Name 
Some more data fields

Я хочу написать запрос с данным Именем, который даст мне все строки с идентификатором больше, чем строка с этим именем.

(Да, да, я знаю, что имя не уникально ... в системе есть.)

Я хочу что-то вроде:

select *
From SomeTable as x
WHERE x.ID> (Select ID from SomeTable as y where y.Name LIKE :param)

или:

SELECT x
FROM SomeTable as x
JOIN SomeTable as y ON x.ID > Y.ID
WHERE Y.Name LIKE :Param

Конечно, я хочу самостоятельное присоединение, а не подзапрос.


Кстати.Критерии тоже идут ...

1 Ответ

1 голос
/ 30 октября 2011

Вы не сможете сделать это с помощью объединения в HQL.

Но этот HQL-запрос в порядке:

select f from Foo f where f.id > (select f2.id from Foo f2 where f2.name = :name)

Если подвыбор может вернуть несколько идентификаторов, вы также можете использовать

select f from Foo f where f.id > all (select f2.id from Foo f2 where f2.name = :name)
...