Cómo persistir muchas entidades (JPA)

Necesito procesar un archivo CSV y para cada registro (línea) persiste una entidad. En este momento, lo hago de esta manera:

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

donde elsave(Entity)l método @ es básicamente solo unEntityManager.merge() llamada. Hay alrededor de 20,000 entidades (líneas) en el archivo CSV. ¿Es esta una forma efectiva de hacerlo? Parece ser bastante lento. ¿Sería mejor usarEntityManager.persist()? ¿Es esta solución defectuosa de alguna manera?

EDITA

Es un proceso largo (más de 400 s) y probé ambas soluciones, conpersist ymerge. Ambos tardan aproximadamente la misma cantidad de tiempo en completarse (459s frente a 443s). La pregunta es si guardar las entidades una por una como esta es óptimo. Hasta donde sé, Hibernate (que es mi proveedor de JPA) implementa algunas funciones de caché / vaciado, por lo que no debería tener que preocuparme por esto.

Respuestas a la pregunta(4)

Su respuesta a la pregunta