Как сделать сохранить много сущностей (JPA)

Мне нужно обработать файл CSV и для каждой записи (строки) сохранить сущность. Прямо сейчас я делаю это следующим образом:

while ((line = reader.readNext()) != null) {
    Entity entity = createEntityObject(line);
    entityManager.save(entity);
    i++;
}

где метод save (Entity) по сути является просто вызовом EntityManager.merge () . В CSV-файле около 20 000 сущностей (строк). Это эффективный способ сделать это? Вроде довольно медленно. Было бы лучше использовать EntityManager.persist () ? Есть ли в этом решении какие-либо недостатки?

РЕДАКТИРОВАТЬ

Это длительный процесс (более 400 секунд), и я попробовал оба решения, с persist и merge . На выполнение обоих требуется примерно одинаковое время (459 с против 443 с). Вопрос в том, оптимально ли сохранять объекты одну за другой. Насколько мне известно, Hibernate (который является моим поставщиком JPA) действительно реализует некоторые функции кеширования / очистки, поэтому мне не нужно об этом беспокоиться.

16
задан John Manak 6 May 2011 в 12:10
поделиться