У меня есть запрос, который содержится в предложении select:
d1.id,
d1.title,
d1.original_doc,
d2.id,
d2.title
И в предложении from:
left outer join documents d2 on d1.original_doc = d2.id
Допустим, в БД у меня есть эти строки:
ID TITLE ORIGINAL_DOC
1 Title1
2 Title2 1
Для первой строки NHibernate вернет 1, Title1, null, 1, Title1 вместо 1, Title1, null, null, null.
Для второй строки будет возвращено 2, Title2, 1, 2, Title2 вместо 2, Title2, 1, 1, Title1.
Обратите внимание, что третий и четвертый столбцы не должны содержать разные значения, так как условие объединения - они одинаковые. Кажется, что происходит то, что я получаю ту же строку d1, что и d2, вместо строки, определенной условием.
Теперь странная часть: Если я включу .ShowSql () и скопирую запрос в Oracle Toad, он действительно вернет правильные результаты!
Я получаю набор результатов в NHibernate, используя var data = session.CreateSQLQuery (selectQuery) .List ()
У кого-нибудь есть идеи?