public ActionForward guardar(
     ActionMapping mapping,
     ActionForm form,
     HttpServletRequest request,
     HttpServletResponse response) {
   ActionErrors errors = new ActionErrors();
   String parametros = "";
   ConMxcModuloxCuentacontableDAO mxcModuloxCuentacontableDAO =
       new ConMxcModuloxCuentacontableDAO(getSessionHibernate(request));
   RelacionModuloContaForm relacionForm = (RelacionModuloContaForm) form;
   errors = validarGuardado(relacionForm);
   Transaction tx = mxcModuloxCuentacontableDAO.getSession().beginTransaction();
   parametros =
       "3;"
           + relacionForm.getParametro(1)
           + ";"
           + relacionForm.getParametro(2)
           + ";"
           + relacionForm.getParametro(3)
           + ";"
           + relacionForm.getParametro(4);
   if (!mxcModuloxCuentacontableDAO
       .findByCuentaParametros(relacionForm.getConCueCuenta().getCueId(), parametros)
       .isEmpty()) {
     errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("errors.mxcc.relacionRepetida"));
   }
   if (errors.isEmpty()) {
     try {
       if (relacionForm.getConCpaConceptoPartida().getCpaId() == -1)
         relacionForm.setConCpaConceptoPartida(null);
       relacionForm.getModuloxCuentacontable().setCxcParametrosUnion(parametros);
       relacionForm.setCxcFechaRelacion(new Date());
       mxcModuloxCuentacontableDAO.save(relacionForm.getModuloxCuentacontable());
       tx.commit();
     } catch (Exception e) {
       tx.rollback();
       e.printStackTrace();
     } finally {
       mxcModuloxCuentacontableDAO.getSession().flush();
       mxcModuloxCuentacontableDAO.getSession().clear();
     }
   }
   saveMessages(request, errors);
   return lista(mapping, form, request, response);
 }