Внутренний список запросов Hibernate - PullRequest
0 голосов
/ 05 марта 2012

У меня есть следующие объекты Hibernate:

@Entity
class A{
    String name;
}

@Entity
class B{
   List<A> aList;
}

Я хочу получить все B из базы данных, которые ALL имена из списка похожи наНапример, список B для следующего списка:

String lst[] = {"str1", "str2"};

Мне нужно получить все записи B, в которых есть списки из двух A с теми же строками, что и в массивах.

Я предпочитаю использоватьзапросы Criteria, но HQL или SQl тоже подойдут.

1 Ответ

0 голосов
/ 05 марта 2012

Если ваши сущности A и B хранятся в A_table и B_table соответственно, а отношение «один ко многим» из A в B хранится в A_table в столбце b_id, то соответствующий SQL будет выглядеть примерно так:

select distinct * from B_table join A_table on A_table.b_id=B_table .id where A_table.name="str1" or A_table.name="str2"

Запрос HQL будет выглядеть примерно так:

select distinct b from B b inner join B.aList as a where a.name='str1' or a.nama='str2'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...