ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Larry Meadors" <lmead...@apache.org>
Subject Re: Data insertion into Parent and Child table -- How to do this while batch insert in IBatis
Date Fri, 05 Jan 2007 15:24:35 GMT
IIRC, your batch will be lots faster in a transaction, and if you do this:

start transaction
  insert parent
  start batch
    insert children
  end batch
end transaction

I think you'll be OK.

Larry


On 1/5/07, Deepinder <dmahi@zymesolutions.com> wrote:
>
>
>
>
>
>
> Hi,
>
>
>
> Is it possible to insert data into a parent table and then use the generated
> primary key to insert into a child table.
>
> I need to do this during a batch insert as it is necessary(performance).
>
>
>
> Thanking you for any lead that may be provided in solving this problem.(I
> spent a day , on this problem J)
>
>
>
> The sample code below has a comment specifying where the problem is
>
>
>
> public void batchInsertTable(
>
>                                     final List beanList) {
>
>
>
>
> getSqlMapClientTemplate().execute(new
> SqlMapClientCallback() {
>
>
>
>                                     public Object
> doInSqlMapClient(SqlMapExecutor executor)
>
>                                                             throws
> SQLException {
>
>
>
>                                                 executor.startBatch();
>
>
>
>                                                 for (int i = 0; i <
> beanList.size(); i++) {
>
>                                                             Integer
> primaryKey = (Integer)executor.insert("populateTable",
>
>
>        beanList.get(i));
>
>
> //use primaryKey for storing info in child table
>
> //Problem is that in batch insert the primarykey value returned is random
> number (not the //one in database)
>
>                                                 }
>
>
>
>                                                 executor.executeBatch();
>
>                                                 return null;
>
>                                     }
>
>
>
>                         });
>
>
>
>             }

Mime
View raw message