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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос по HibernateTemplate и HQL, .find() 
:(
    Опции темы
Lonkly
Дата 14.8.2010, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток! Не хотел в этот солнечный день садиться программить, но все же решился. И через пол часа труда возник вопрос. Изучаю в данный момент HQL и столкнулся с такой проблемой:

Так создан список друзей пользователя:

    
Код

@ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "USER_FRIENDS", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "FRIEND_ID") })
    private Set<User> friends = new HashSet<User>();


Вопрос:
        Как используя метод List<User> userFriends = hibernateTemplate.find("    найти в этой таблице пользователя по его и его друга айдишникам.
        Ну,  что-то вроде этого: "from User_Friends where USER_ID='" + user.getId() + "' and FRIEND_ID = '" + friendId + "', только рабочий вариант smile

П.С: для изучения Spring+Hibernate читаю официальные референсы. А какую книгу посоветует уважаемое коммьюнити?


Полный метод выглядит так:

Код

    @Override
    public void removeFriend(User user, Long friendId) {
        List<User> userFriends = hibernateTemplate
                .find("from User.friends where USER_ID='" + user.getId()
                        + "' and FRIEND_ID = '" + friendId + "'");
        hibernateTemplate.delete(userFriends.get(0));
    }

PM MAIL ICQ   Вверх
wedens
Дата 14.8.2010, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

List<User> userFriends = hibernateTemplate.find(from User as user left join fetch user.friends as friend where user.id=? and friend.id=?, user.getId(), friendId);

сам не эксперт, но вроде что то похожее на это)

Это сообщение отредактировал(а) wedens - 14.8.2010, 15:47
PM MAIL   Вверх
ki6opr
Дата 18.8.2010, 03:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



прости за офтоп но вот это просто ужасно:
@ManyToMany(fetch = FetchType.EAGER)

когда у тебя будет грузится твой объект, ты еще потащищ за собой и список друзей, а если их будет не 1 а хотя бы 50 - 100 то тормоза гарантированы.

PS поэтому у аннотаций с Many FetchType по умолчанию Lazy
PM MAIL ICQ   Вверх
wedens
Дата 18.8.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(ki6opr @ 18.8.2010,  03:52)
прости за офтоп но вот это просто ужасно:
@ManyToMany(fetch = FetchType.EAGER)

когда у тебя будет грузится твой объект, ты еще потащищ за собой и список друзей, а если их будет не 1 а хотя бы 50 - 100 то тормоза гарантированы.

PS поэтому у аннотаций с Many FetchType по умолчанию Lazy

может он будет сразу использовать эти данные.
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.0655 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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