Re: Hibernate/JBoss & Bulk Insert?
On Sep 15, 3:43 pm, "Steve" <g...@acm.org> wrote:
I am looking for a way to do a bulk insert of thousands of objects using =
JBoss and Hibernate. I currently have an injected
EntityManager with a JTA PersistenceContext in a Stateless Session Bean a=
nd am doing something like
for(int i = 0; i < num; i++){
MyObject myObject = createMyObject(num, ...);
entityManager.persist(myObject);
}
(in a try/catch block) which is slow.
I have unsuccessfully tried to use entityManager.getTransaction() to begi=
n, commit, etc. transactions. I have also unsuccessfully
tied to convert the EntityManager to a HibernateEntityManager and use Hib=
ernate transactions. I've also tried to use
@TransactionAttribute(TransactionAttributeType.REQUIRED) but it made no s=
ignificant difference (it's slightly faster).
Is there a way to save multiple objects in a "single" database call, or a=
t least a few?
BTW, Having something like entityManager.persist(collection) would be nic=
e.
You'll get much better performance for bulk operations by realizing
that your database *does not store Objects*, just rows, and treating
data appropriately. In this case, iBATIS or straight JDBC will
probably be much, much faster than JPA, as you can skip all of the
steps involved in converting your data to objects and back to data.
In fact, you may be better off skipping the app entirely and using
your DB's equivalent of COPY <tablename> or LOAD <tablename> to bulk-
load data from a flat file...
-o