* @see br.gov.serpro.ouvidoria.dao.Dao#save(br.gov.serpro.ouvidoria.model.Identifiable)
*/
public void save(Identifiable object) throws DaoException {
if (object == null) {
throw new DaoException("Tentativa de persistir um Objeto nulo.");
}
Transaction trans = null;
try {
Session session = HibernateSessionFactory.getFactory().getSession();
trans = session.beginTransaction();
session.saveOrUpdate(object);
session.flush();
trans.commit();
} catch (HibernateException e) {
try {
System.out.println(e.getMessage());
trans.rollback();
} catch (HibernateException e1) {
log.error(e1);
}
log.error(e);
String errorMessage = e.getMessage();
if (e.getCause() != null && e.getCause().getMessage() != null) {
errorMessage = e.getCause().getMessage();
}
// fecha-se a sessão.
HibernateSessionFactory.getFactory().closeSession();
throw new DaoException("DAO SAVE ERROR: " + errorMessage, e);
}
}