Соедините две таблицы с Hibernate Criteria - PullRequest
4 голосов
/ 02 декабря 2011

Возьмем следующие примеры сущностей:

Entity Child {
    long id;
    String name;
    long parentKey;
}

Entity Parent {
    long id;
    String desc;
}

Есть ли способ с запросами Hibernate Criteria:

select * from Child c, Parent p 
         where c.parentKey = p.id and c.name = "whatever" and p.desc = "whatever"

Нашей главной задачей является как объединиться с критериями черездве сущности, которые связаны только длинным ключом .

Предположим, что мы не можем поместить ссылку на Родителя непосредственно в нашего Ребенка.

1 Ответ

1 голос
/ 03 декабря 2011

Ну, не знаю, на какую версию Hibernate вы ссылаетесь, но в JPA 2.0 возможно нечто подобное:

String query = "SELECT c FROM Child c, Parent p WHERE c.parentId = p.id";

List<Child> children = em.createQuery(query, Child.class).getResultList();

Таким образом, вы явно выполняете JOIN на основе вашего пользовательского условия, а не позволяете JPA управлять им, хотя это совершенно законно.

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