Как установить критерий с дочерней таблицей - PullRequest
0 голосов
/ 22 марта 2019

Мне нужно иметь такой запрос:

select * from TABLE where Source_KEY in (1,2);

Мой класс Hibernate выглядит так:

@Entity
@Table(name = "TABLE", schema = "SCH")
public class Table {
    private Long key;
    private Long id;
    private Source src;
}

Source is another entity class,
@Entity
@Table(name = "SOURCE", schema = "SCH")
public class Source{
private Long Source_KEY;
}

Теперь я написал критерий, но, похоже, у него есть проблема.Пожалуйста, кто-нибудь может дать совет по этому вопросу.

private static final List<String> STAY_SOURCE_KEY = asList(1,2);

criteria.add(Restrictions.in("Source_KEY", STAY_SOURCE_KEY));

Это должен быть список класса Source, но как это сделать в критериях.Он должен формировать запрос как

select * from TABLE where Source_KEY in (1,2);

1 Ответ

1 голос
/ 24 марта 2019

Вам необходимо присоединиться к столу. Используйте

criteria.createAlias("src","s");
criteria.add(Restrictions.in("s.Source_KEY", STAY_SOURCE_KEY));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...