Non ti ho visto svuotare la tua sessione
Session session = sessionFactory.openSession();
session.save(mc);
session.flush();
session.close();
Ma il più preferibile è
Session session = factory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.save(mc);
tx.commit(); // Flush happens automatically
}
catch (RuntimeException e) {
tx.rollback();
throw e; // or display error message
}
finally {
session.close();
}