С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
2 / 2 / 3
Регистрация: 21.10.2015
Сообщений: 16
1

Hibernate OneToMany очень долгая загрузка

25.10.2015, 23:09. Показов 1078. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер.
Есть две сущности - Client и Receipt. У одного клиента может быть много Receipt, у многих Receipt - один Client. В классах объявил связь OneToMany. В таблицах всего около 1500 записей в каждой.

Client:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public final class Client {
    ...
    private Set<Receipt> receiptList = new HashSet<Receipt>(0);
    ...
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "client")
    public Set<Receipt> getReceiptList() {
    return receiptList;
    }
 
    public void setReceiptList(Set<Receipt> receiptList) {
    this.receiptList = receiptList;
    }
}
Receipt:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public final class Receipt {
    ...
    private Client client;
    ...
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "CLIENTID", columnDefinition = "T_BINT", nullable = false)
    public Client getClient() {
    return client;
    }
 
    public void setClient(Client client) {
    this.client = client;
    }
}
При выполнении запроса к таблице Client
Java
1
Query query = session.createQuery("from Client");
время выполнения составляет всего 1-2 секунды и список Receipt грузится только при обращении к методу getReceiptList().
А при выполнении аналогичного запроса к таблице Receipt, в консоль валится куча запросов к таблице Client, и время загрузки составляет более 110 секунд. Такое ощущение что для каждой записи делается select к таблице Client. Возможно ошибка где то в аннотациях? Как сократить время загрузки?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2015, 23:09
Ответы с готовыми решениями:

Принудительная загрузка lazy Object в Hibernate
Как принудительно к примеру загрузить соллекцию элементов объявленную как lazy Если таких...

Очень долгая загрузка установщика w7
Доброго времени суток, уважаемые форумчане! Я много раз устанавливал W7 на разные компьютеры...

Очень долгая загрузка формы
http://stools.googlecode.com/svn/trunk/bin/sTASKedit/...

Очень долгая загрузка системы
У меня ноутбук asus zenbook ux32vd, windows 8 64bit. Система стала загружаться по 5-6 минут. В...

1
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.10.2015, 23:26 2
1984nef, уберите поле Client из объекта Receipt. Практического значения от него немного, а проблемы с производительностью скорее всего из-за него.

Кстати 1-2 секунды на запрос в БД это очень очень много
1
25.10.2015, 23:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2015, 23:26
Помогаю со студенческими работами здесь

Очень долгая загрузка страницы
Очень долго грузится страница от 5-10сек примерно, не важно, это скрипт пхп или джаваскрипт....

Очень долгая загрузка Windows
Доброго времени суток, пользователь этого портала. У меня возникла большая проблема с компьютером....

Очень долгая загрузка ноута.
Здравствуйте! У меня ноутбук Acer Aspire 4310. На днях пыталась отключить модем юсб через...

Очень долгая загрузка сайтов
Всем привет. Вообщем, проблема такова. Очень долго загружаются сайты(часто вообще не загружаются),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru