powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по Fetch
10 сообщений из 10, страница 1 из 1
Вопрос по Fetch
    #38991323
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Код: java
1.
2.
3.
4.
5.
6.
    @Entity
    public class Client
    ...........

    @ElementCollection(fetch = FetchType.EAGER)
    private List<String> photosUrl = new ArrayList<>();


После получения
Код: java
1.
Client client = clientRepository.findOne(clientId);


и вызове
Код: java
1.
client.getPhotosUrl()


начал выдавать следующую ошибку:
Код: java
1.
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags


Покопалась и нашла следующее решение:
Код: java
1.
2.
3.
    @ElementCollection
    @LazyCollection(LazyCollectionOption.FALSE)
    private List<String> photosUrl = new ArrayList<>();


Объясните в чем суть? Спасибо
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38991334
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы бы поиском пользовались. Я и здесь и на rsdn уже рассказывал.
Для fetch eager ORM пытается сделать JOIN. Bag это не упорядоченная ассоциация. Если в классе две таких ассоциации, то ORM не может однозначно распарсить JOIN в объекты. Там какая-то двойственность с ключами выходит. Точную формулировку уже не помню.

Решается разными способами. Можно указать тип Fetch SELECT, будет почти тоже самое что Lazy, только загружаться сразу, а не потом. Можно добавить index и сделать ассоциацию упорядоченной. Тогда будет работать JOIN.

@LazyCollection(LazyCollectionOption.FALSE) это какая-то новая фича. Я с ней не знаком. Но у меня есть подозрения что она приводит к выборке через SELECT или SUBSELECT. Надо SQL log посмотреть.
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38991335
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38991337
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38991340
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ пишет что можно тип коллекции на Set поменять. Вот это уже интересно.
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38991438
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
BlazkowiczНарод пишет что можно тип коллекции на Set поменять. Вот это уже интересно.
да, тоже читала:
авторBut note that in most cases a Set<Child> is more appropriate than List<Child>, so unless you really need a List - go for Set
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38991621
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTВсем привет.
Код: java
1.
2.
3.
4.
5.
6.
    @Entity
    public class Client
    ...........

    @ElementCollection(fetch = FetchType.EAGER)
    private List<String> photosUrl = new ArrayList<>();


Объясните в чем суть? Спасибо


а у вас в классе еще есть такие вот колекции?
...
private List<Child> children;
....
private List<Child> children2;
.....
или только одно поле ???

если их более двух то тут решение :


/ http://stackoverflow.com/questions/4334970/hibernate-cannot-simultaneously-fetch-multiple-bags
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38992039
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1JulTВсем привет.
Код: java
1.
2.
3.
4.
5.
6.
    @Entity
    public class Client
    ...........

    @ElementCollection(fetch = FetchType.EAGER)
    private List<String> photosUrl = new ArrayList<>();


Объясните в чем суть? Спасибо


а у вас в классе еще есть такие вот колекции?
...
private List<Child> children;
....
private List<Child> children2;
.....
или только одно поле ???

если их более двух то тут решение :


/ http://stackoverflow.com/questions/4334970/hibernate-cannot-simultaneously-fetch-multiple-bags
Поле одно. Именно по этой ссылке я и нашла решение. Спасибо
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38992202
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTначал выдавать следующую ошибку:
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags

JulT Поле одно.
Ну, да, ну, да.
...
Рейтинг: 0 / 0
Вопрос по Fetch
    #38992294
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczJulTначал выдавать следующую ошибку:
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags

JulT Поле одно.
Ну, да, ну, да.
я серьезно, поле photosUrl у меня единственное в Client, потому-то я до сих пор не совсем понимаю природу возникновения этой ошибки...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по Fetch
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]