Почему в Property API в hibernate нет метода (критерий выбора)? - PullRequest
0 голосов
/ 24 января 2012

ниже приведен фрагмент кода в моем устаревшем проекте

  DetachedCriteria subCriteria = DetachedCriteria.forClass(Employee.class);
  subCriteria.setProjection(Projections.distinct(Property.forName ("department.departmentId"))).add(Property.forName("departmentName").eq(departmentName));
  Criteria criteria = getCriteria();
  Property.forName("departmentId").in(subCriteria)

У меня вопрос: у нас есть следующий метод in (Подвыбор DetachedCriteria) в API свойств, почему не метод in (Подвыбор Criteria)? Я уверен, что за этим должна быть какая-то причина, но как-то я этого не понял? Причина, по которой я говорю это, заключается в том, что у нас должна быть возможность выбора другого критерия в качестве подвыбора вместо DetachedCriteria.

РЕДАКТИРОВАТЬ: - Ниже описано, как я ожидаю создания подкритериев, потому что у меня есть сеанс, доступный на данный момент, поэтому у меня нет необходимости использовать DetachedCriteria

  Criteria subCriteria1 =session.createCriteria(Employee.class);   
  subCriteria1.setProjection(Projections.distinct(Property.forName("department.departmentId"))).add(Property.forName("departmentName").eq(departmentName));
 Criteria criteria = getCriteria();
  Property.forName("departmentId").in(subCriteria1)

Но subCriteria1 здесь недопустим, поскольку в качестве аргумента метода ожидается только DetachedCriteria. Почему бы не использовать аргумент Критерии вместе с DetachedCriteria?

1 Ответ

1 голос
/ 24 января 2012

Поскольку критерии привязаны к сеансу, не отсоединены.

Что должно произойти, если подкритерии созданы с другим сеансом?какой диалект, перехватчик, подстановки запросов и т. д. следует использовать?

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