Looks like I have a solution. Using TransactionTemplate did the trick, but I am still not certain exactly why. It may have something to do with way the following from the below snippet of code behaves in the Callback versus the Plain Old Hibernate approach:
Code:
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public SessionFactory getSessionFactory() {
return this.sessionFactory;
}
. . .
getSessionFactory().getCurrentSession().save(object);
. . .
Here is the refactored importBatch method:
Code:
public void importBatch(final Collection objs) {
this.transactionTemplate.execute(new TransactionCallbackWithoutResult() {
public void doInTransactionWithoutResult(TransactionStatus status) {
for(Object object : objs) {
getSessionFactory().getCurrentSession().save(object);
}
}
});
}