Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / BatchSize в JPA / 2 сообщений из 2, страница 1 из 1
27.11.2012, 21:57
    #38055550
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BatchSize в JPA
Объясните пожалуйста как работает BatchSize
Посмотрел пример например вот этот
http://www.mkyong.com/hibernate/hibernate-fetching-strategies-examples/

Что-то я не могу понять насчет @BatchSize(size = 10)

Например в том же примере - есть Stock который содержит коллекцию Record


Код: java
1.
2.
3.
4.
class Stock
{
   List<Record> records
}



Если мы не устанавливаем BatchSize, то есть по умолчанию если он установлен в 1 :
Считываем все Stock и потом из каждого Stock считываем records


Код: java
1.
2.
3.
4.
5.
6.
7.
List<Stock> stocksList = session.createQuery("from Stock").list();

for(Stock stock : stocksList)
{
   List<Record> records = stock.getRecords();
   print("records for stock n " + stok.getId + " -> " + records;
}


Код: java
1.
2.
3.
4.
5.
6.
7.
select ...  from stock stock0_


select ...  from record where stock.ID=?


select ...  from record where stock.ID=?




Все логично - для каждого Stock считываем список records.

Теперь если ставим BatchSize например в 10, то при таком же коде должен получится запрос типа


Код: java
1.
2.
3.
4.
5.
6.
select ... from stock stock0_


select ... from record  where

       stock.ID in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)




Но такой select даст сразу выборку для ВСЕХ 10 stock id!
Как же мы сможем выделить из такой выборки records для stock.id = 1 отдельно от списка records для stock.id = 2 и тд?
У нас будет выборка для всех stock.id - от 1 до 10.
В чем тут прикол?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.10.2014, 21:24
    #38770934
diesel_den
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BatchSize в JPA
Если я не ошибаюсь, BatchSize - это родная аннотация в Hibernate и для неё в JPA аналога нет. Да, думаю можно использовать родную аннотацию даже в JPA, при условии JPA-провайдером является Hibernate.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / BatchSize в JPA / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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