Hibernate Relationship Mapping/Speed up batch inserts

Posted by manyxcxi on Stack Overflow See other posts from Stack Overflow or by manyxcxi
Published on 2010-04-22T20:16:06Z Indexed on 2010/04/22 20:23 UTC
Read the original article Hit count: 150

Filed under:
|
|
|
|

I have 5 MySQL InnoDB tables: Test,InputInvoice,InputLine,OutputInvoice,OutputLine and each is mapped and functioning in Hibernate. I have played with using StatelessSession/Session, and JDBC batch size. I have removed any generator classes to let MySQL handle the id generation- but it is still performing quite slow. Each of those tables is represented in a java class, and mapped in hibernate accordingly. Currently when it comes time to write the data out, I loop through the objects and do a session.save(Object) or session.insert(Object) if I'm using StatelessSession. I also do a flush and clear (when using Session) when my line count reaches the max jdbc batch size (50).

  1. Would it be faster if I had these in a 'parent' class that held the objects and did a session.save(master) instead of each one?
  2. If I had them in a master/container class, how would I map that in hibernate to reflect the relationship? The container class wouldn't actually be a table of it's own, but a relationship all based on two indexes run_id (int) and line (int).
  3. Another direction would be: How do I get Hibernate to do a multi-row insert?

© Stack Overflow or respective owner

Related posts about java

Related posts about hibernate