У меня есть этот код:
IList<Foo1> ou = session.CreateQuery("from Foo1 as f1 JOIN FETCH f1.foo2 as f2 USING (id_foo1) where f2.foo3.year ='2004'").List<Foo1>();
Возвращает все объекты из Foo1 и игнорирует предложение where. Зачем? Где, вероятно, ошибка?
Следующие эксперименты:
(1) from Foo2 as f2 where f2.year = '2004' //is OK
(2) from Foo1 as f1 JOIN FETCH f1.foo2 as f2 USING (id_foo1) //is OK
(3) from Foo1 as f1 JOIN FETCH f1.foo2 as f2 USING (id_foo1) where f2.year = '2004' //returns the same result as (2)