Re: Hibernate/JBoss & Bulk Insert?

Discussion in 'Java' started by Steve, Sep 16, 2008.

  1. Steve

    Steve Guest

    Thanks for your reply. However, I would still like a way to use Hibernate for bulk inserts, if possible, since I'm trying to improve
    the performance of a web app. Although straight JDBC, etc. may be faster, the database tables use primary keys that are auto
    incremented and this can cause a problem using JDBC when multiple users can concurrently make inserts into the database.

    In addition, I do have a program that will create a file that I can import into MySQL that runs very fast.

    Steve

    BTW, I know that the database doesn't store objects. That's why an ORM (i.e., Hibernate) is being used to bridge Java and a
    relational database.

    From: "Owen Jacobson" <>
    Subject: Re: Hibernate/JBoss & Bulk Insert?
    Date: Monday, September 15, 2008 5:47 PM

    On Sep 15, 3:43 pm, "Steve" <> 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 and 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 begin, commit, etc. transactions. I have also unsuccessfully
    > tied to convert the EntityManager to a HibernateEntityManager and use Hibernate transactions. I've also tried to use
    > @TransactionAttribute(TransactionAttributeType.REQUIRED) but it made no significant difference (it's slightly faster).
    >
    > Is there a way to save multiple objects in a "single" database call, or at least a few?
    >
    > BTW, Having something like entityManager.persist(collection) would be nice.


    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
    Steve, Sep 16, 2008
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Sean
    Replies:
    6
    Views:
    390
  2. =?Utf-8?B?U2hpanUgUG95aWxpbA==?=

    BULK INSERT WITH ADO.NET & ORACLE

    =?Utf-8?B?U2hpanUgUG95aWxpbA==?=, Apr 25, 2005, in forum: ASP .Net
    Replies:
    2
    Views:
    6,261
    Sathya.Pai
    Sep 9, 2009
  3. Niraj
    Replies:
    2
    Views:
    10,718
    Jim Kennedy
    Mar 3, 2004
  4. ABC
    Replies:
    1
    Views:
    721
    Galin iliev
    May 11, 2006
  5. Steve
    Replies:
    1
    Views:
    3,209
    Owen Jacobson
    Sep 15, 2008
Loading...

Share This Page