![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| garbuz |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
Возникли непонятки с pagination.
Делаю так
Выбираются четыре записи, причем выборка начинается не с четвертой, а с третье. И первые три выбранные записи одинаковые. Делаю по-другому.
Выбирается четыре записи, только по две одинаковых. Добавив эту строчку
получаем две записи. Что же в итоге делать? Неужели чтобы получить 4 записи надо так писать?
|
||||||||
|
|||||||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Привет. Нет-нет. У тебя проблема связана с тем, что ты выбираешь коллекцию, элементы которой также содержат коллекции. Т.е. твой Post содержит ManyToOne List<Message>.
в результате используется InnerJoin в селекте. а подумай сам: когда ты такой запрос выполнишь на базе, сколько раз у тебя повторится инфа по посту? Да столько сколько мессаждей в этом посте. Что бы такого не происходило, надо или LazyLoad(а может и не поможет...) или вот так:
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
Вот класс
У всех полей FetchType.EAGER. Это наверно не очень хорошо, но пока так. У поста есть коллекция тегов и все. Пост имеется ввиду не тот что на форуме, а например тот что в блоге, который вместо сообщении содержит коментарии. В данном случае у поста нет коллекии комментариев. Каждый комментарий содержит ссылку на пост. Посмотрел sql, котрый генерит хибернейт - это ужасно. Очень большой запрос со множеством джоинов. Джоины скорее всего из-за FetchType.EAGER |
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Ну может я немного поспешил предугадать, но суть от этого не меняется:
из-за того, что у тебя
и выходит вот это дублирование. поставь тот хинт, что я предложил и должно помочь. У меня, собственно, так везде, где используется Pagination Еще могу предложить такое архитектурное решение, для такой задачи, как вынос логики этой коллекции во VIEW на базе, или просто запросом, результат которого будет меппиться на твой Post, таким образом ты сможешь и логику свою обрабатывать и не будет у тебя лишних JOIN -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
MisterCleric, спасибо! Вроде помогло! Дома вечерком еще попробую!
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |