public int save(List transientInstances, int commitNum) {
log.debug("saving larger transientInstances");
Transaction tx = null;
Session session = getSession();
try {
tx = session.beginTransaction();
int i = 0;
for (Object transientInstance : transientInstances) {
session.save(transientInstance);
i++;
if (i == commitNum) {
tx.commit();
log.debug("save " + commitNum + "data successful");
i = 0;
session.flush(); session.clear();
tx = session.beginTransaction();
}
}
if (i != 0) {
tx.commit();
session.flush(); session.clear();
}
// session.
log.debug("save larger successful");
return 0;
} catch (Exception re) {
log.error("save failed", re);
if (tx != null && tx.isActive())
tx.rollback();
return -1;
}
}