0

Я использую QueryOver <> для выполнения ряда подзапросов с использованием конъюнкции. Вот некоторые псевдо-код, который объясняет, что я делаю:Объединение QueryOver и подзапроса CreateQuery

Conjunction conj = new Conjunction(); 
conj.Add(Subqueries.WhereProperty<Customer>(...).In(QueryOver.Of<Foo>().Where(...)); 
conj.Add(Subqueries.WhereProperty<Customer>(...).In(QueryOver.Of<Bar>().Where(...)); 

var result = session.QueryOver<Customer>() 
        .Where(conj) 
        .List(); 

Это прекрасно работает, но я наткнулся на сценарий, когда мне нужно использовать HQL (CreateQuery()) для одного из моих подзапросов. Причина, по которой мне нужно использовать HQL, - это то, что мне нужно соединение theta (aka cross) из-за неотображаемых отношений (к сожалению, я не могу это изменить).

Есть ли способ, которым я могу использовать CreateQuery() (или CreateCriteria() при условии, что я могу делать тета-соединения), чтобы определить подзапросы и указать запрос верхнего уровня с помощью QueryOver <>()?

ответ

0

Нет, запросы HQL и запросы QueryOver/Criteria не могут быть объединены.

Вы можете использовать простой SQL в QueryOver/Criteria.

Смежные вопросы