Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Left join на JPQL, Создание JPQL запросов 
:(
    Опции темы
Nikola661
Дата 10.4.2011, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 14.5.2007

Репутация: 1
Всего: 1



Доброе !!!
Есть две таблицы Orgaization и Payment. Они OneToMany. Нужно получить список организаций и подтянуть только те платежи у которых, например, type=0.

Пробовал так:
Код

Query query = em.createQuery("select o from Organization o where o.orgId in (:ids)").setParam("ids",listId);
List orgList = query.getResultList();
for(Organization org : orgList) {
    for(int i=org.getPayments().size()-1;i>=0;i--) {
        if (org.getPayments().get(i).getType()==1) 
            org.getPayments().remove(i);
    }
}

но т.к. платежей стало много и организаций тоже то памяти стало не хватать и соответственно ERROR!!! =(
Как будет выглядеть JPQL запрос, если мне надо получить список организаций и их платежи с типом type=0, но у некоторых организаций платежей может и не быть, они тоже должны попасть в список !?

http://openjpa.apache.org/builds/1.0.2/apa...ref_inner_joins
Пробовал так:
Код

SELECT o 
FROM Organization o 
          LEFT JOIN FETCH o.payments p 
WHERE p.type = 0


Но тут не попадают организации у которых не было платежей. На Native SQL я это сделать могу, но на JPQL не получается!! Помогите!?
PM MAIL   Вверх
koroplysov
Дата 10.4.2011, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



Наверное что-то типа этого(если правильно понял):
Код

SELECT o.nane_o,p.pay_p
FROM Organization o 
          LEFT JOIN  payments p on p.id_o_p=o_id_o and p.type = 0


Это сообщение отредактировал(а) koroplysov - 10.4.2011, 13:50
PM MAIL   Вверх
Nikola661
Дата 11.4.2011, 02:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 14.5.2007

Репутация: 1
Всего: 1



Цитата(koroplysov @ 10.4.2011,  13:49)
Наверное что-то типа этого(если правильно понял):
Код

SELECT o.nane_o,p.pay_p
FROM Organization o 
          LEFT JOIN  payments p on p.id_o_p=o_id_o and p.type = 0

Нет, не это!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.