Я пытаюсь создать критерий, состоящий из различных компонентов. Представьте сопоставленные классы ниже.Ограничения на спящий режим с помощью соединений
class Thing {
Inner inner;
String x;
}
class User {
Id; // mapped as id.
String first; // indexed columns etc
String last;
}
Я хотел бы создать запрос (так называемый критерий) для вещей, где [email protected] и [email protected] Я легко могу добиться этого, создав дополнительные критерии от корня для Пользователя, а затем добавив к этому ограничения.
Critera root = ...
root.add(Restrictions.eq("xxx", @2));
Criteria user = root.createCritera("user");
user.add(Restrictions.eq("first", @1));
...etc
Однако я не могу создать и для свойства вещи и пользователя, используя код, похожий на ...
Critera root = ...
root.add(Restrictions.and(Restrictions.eq("user.first", @1), Restrictions.eq("thing.x", @2));
А QueryException брошен, что «user.first» не является ассоциация. Необходимость вручную создавать критерии перед добавлением ограничения кажется чем-то, что не должно быть необходимым, но все же оно ... Попытки использовать псевдоним во второй форме также терпят неудачу.