Как объединить таблицы в однонаправленном режиме «многие к одному»? - PullRequest
1 голос
/ 03 марта 2010

У меня есть два класса. например:

class A {
public Long id ;
}
class B {
public Long id ;
public A a ;
}

В и А имеет отношение много к одному. Я могу получить список Б, как это:

"from B b left join b.a a where a.id > 10 and b.id > 10 " , Но как я могу получить список А при тех же условиях соединения? Я не могу ориентироваться от А до Б, есть ли решения? Могу ли я сделать это, используя критерии?

пс: могу ли я сделать это так:

"select a from A a , B b where b.a.id = a.id"?

Ответы [ 2 ]

0 голосов
/ 03 марта 2010

Ваши примеры должны работать, но вы пробовали:

select b.a from B b where b.id > 10 and b.a.id > 10

И да, это должно быть возможно с критериями.

0 голосов
/ 03 марта 2010

будьте осторожны с

select a from A a , B b where b.a.id = a.id

Я думаю, вы можете дважды найти таблицу A в предложении from последнего запроса sql (один из-за 'A a' из предложения hql from и второй из-за baid в предложении where, автоматически добавлено hibernate. (Но я не уверен в этом, вам нужно будет проверить это).

Не

select b.a from B b left join b.a a where a.id > 10 and b.id > 10

работает?

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