/** * Inicializa una sesión de hibernate en base al editor indicado * * @param id que se asociará a la nueva sesión */ public AbstractController(String editorId, GenericDAOImpl<X, Long> dao) { LOGGER = Logger.getLogger(getClass()); session = HibernateUtil.getEditorSession(editorId); session.setFlushMode(FlushMode.MANUAL); // session.setFlushMode(FlushMode.NEVER); /* session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); */ this.editorId = editorId; this.dao = dao; this.dao.setSession(session); }
public void doDelete(X registro) { try { dao.doDelete(registro); } catch (HibernateException he) { if (getSession().isOpen()) { HibernateUtil.rollback(getSession().getTransaction()); HibernateUtil.closeEditorSession(getEditorId()); } HibernateUtil.procesarError(he); session = HibernateUtil.getEditorSession(editorId); session.setFlushMode(FlushMode.MANUAL); dao.setSession(session); HibernateUtil.verSesiones(); } }