Сопоставить два объекта с одним запросом NHibernate SQL? - PullRequest
0 голосов
/ 10 апреля 2019

В настоящее время я пытаюсь улучшить производительность некоторых запросов NHibernate.

У меня HQL-запрос, подобный следующему:

select obj1 from MyObject obj1
join fetch obj1.MySubObject subObject
where obj1.StartDate = (
    select max(obj2.StartDate) 
    from MyObject obj2 
    where obj1.SubObject.Cle = obj2.SubObject.Cle
) 

Я создал materlize-представление на основе соответствующего SQL-запроса и пытаюсь выполнить SQL-запрос для него, чтобыполучить мой список объектов со связанным с ним подобъектом:

 IQuery request = this.CreateSQLQuery(query).AddEntity(typeof(MyObject));

Но у меня есть только прокси NHibernate для моего подобъекта.

Я также пробовал:

 IQuery request = this.CreateSQLQuery(query).AddEntity(typeof(MyObject)).AddEntity(typeof(MySubObject));

Но в этом случае у меня есть GenericADOException, в котором говорится, что указанный столбец не найден в ResultSet.

Два объекта сопоставлены в файлах hbm, а столбец первичного ключа имеетназвание обеих таблиц, которое, как мне кажется, является частью моей проблемы.

Возможно ли то, чего я хочу достичь?и если да, то как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...