Lets say i have 100 rows to insert and the 100th item has an error (eg a value to big for column). When the commit is executed an exception is thrown and rollback is called. However, the first 99 records are still being persisted to the database and not being rolledback.
I am using an oracle database and running in a JBoss 4.0.2 container using an MBean managed SessionFactory and jboss transaction manager
The code looks like this:
Code:
session = sessionFactory.openSession();
tx = session.beginTransaction();
try{
for (int i = 0; i < 101; i++) {
ValueObject obj = new ValueObject();
obj.setValue("TEST");
session.save(obj);
}
tx.commit();
} catch(HibernateException he){
tx.rollback();
} finally {
session.close();
}