Example usage for org.hibernate Query setDate

List of usage examples for org.hibernate Query setDate

Introduction

In this page you can find the example usage for org.hibernate Query setDate.

Prototype

@Deprecated
@SuppressWarnings("unchecked")
default Query<R> setDate(String name, Date val) 

Source Link

Document

Bind the val (time is truncated) of a given Date object to a named query parameter.

Usage

From source file:it.eng.spagobi.kpi.config.dao.KpiDAOImpl.java

License:Mozilla Public License

public String getKpiTrendXmlResult(Integer resId, Integer kpiInstId, Date endDate) throws SourceBeanException {

    logger.debug("IN");
    String toReturn = "";
    Session aSession = null;/*from   ww  w.ja v  a 2 s.c  o  m*/
    Transaction tx = null;

    try {
        aSession = getSession();
        tx = aSession.beginTransaction();

        String hql = "select max(s.idKpiInstanceValue) , s.beginDt";
        hql += " from SbiKpiValue s where s.sbiKpiInstance.idKpiInstance = ? ";
        hql += " and s.beginDt <= ? ";
        hql += " and s.endDt > ? ";
        if (resId != null) {
            hql += " and s.sbiResources.resourceId = ? ";
        } else {
            logger.debug("Null resource setted");
        }
        hql += "group by s.beginDt order by s.beginDt desc";

        Query hqlQuery = aSession.createQuery(hql);
        hqlQuery.setInteger(0, kpiInstId);
        hqlQuery.setDate(1, endDate);
        hqlQuery.setDate(2, endDate);
        if (resId != null) {
            hqlQuery.setInteger(2, resId);
            logger.debug("Resource setted");
        } else {
            logger.debug("Null resource setted");
        }
        hqlQuery.setMaxResults(10);

        SourceBean sb = new SourceBean("ROWS");
        List l = hqlQuery.list();
        if (!l.isEmpty()) {
            logger.debug("The result list is not empty");
            for (int k = l.size() - 1; k >= 0; k--) {
                Object[] tempL = (Object[]) l.get(k);
                Integer kpiValueId = (Integer) tempL[0];
                SbiKpiValue temp = (SbiKpiValue) aSession.load(SbiKpiValue.class, kpiValueId);
                SourceBean sb2 = new SourceBean("ROW");
                if (temp != null && temp.getValue() != null) {
                    sb2.setAttribute("x", temp.getBeginDt());
                    sb2.setAttribute("KPI_VALUE", temp.getValue());
                    sb.setAttribute(sb2);
                }
            }
        } else {
            logger.debug("The result list is empty");
            SourceBean sb2 = new SourceBean("ROW");
            sb.setAttribute(sb2);
        }

        toReturn = sb.toString();

    } catch (HibernateException he) {

        if (tx != null)
            tx.rollback();
        logger.error(he);
    } finally {
        if (aSession != null) {
            if (aSession.isOpen())
                aSession.close();
            logger.debug("OUT");
        }
    }

    return toReturn;
}

From source file:it.eng.spagobi.kpi.config.dao.KpiDAOImpl.java

License:Mozilla Public License

public String getKpiTrendXmlResult(Integer resId, Integer kpiInstId, Date beginDate, Date endDate)
        throws SourceBeanException {

    logger.debug("IN");
    String toReturn = "";
    Session aSession = null;//from  ww w  . ja  v  a2s . c  o m
    Transaction tx = null;

    try {
        aSession = getSession();
        tx = aSession.beginTransaction();

        String hql = "select max(s.idKpiInstanceValue) as VALUE, s.beginDt as DATE ";
        hql += " from SbiKpiValue s where s.sbiKpiInstance.idKpiInstance = ? ";
        hql += " and s.beginDt <= ? and s.beginDt >= ? ";
        if (resId != null) {
            hql += " and s.sbiResources.resourceId = ? ";
        } else {
            logger.debug("Null resource setted");
        }
        hql += "group by s.beginDt order by s.beginDt desc";

        Query hqlQuery = aSession.createQuery(hql);
        hqlQuery.setInteger(0, kpiInstId);
        hqlQuery.setDate(1, endDate);
        hqlQuery.setDate(2, beginDate);
        if (resId != null) {
            hqlQuery.setInteger(3, resId);
            logger.debug("Resource setted");
        } else {
            logger.debug("Null resource setted");
        }
        hqlQuery.setMaxResults(10);

        SourceBean sb = new SourceBean("ROWS");
        List l = hqlQuery.list();
        if (!l.isEmpty()) {
            logger.debug("The result list is not empty");
            for (int k = l.size() - 1; k >= 0; k--) {
                Object[] tempL = (Object[]) l.get(k);
                Integer kpiValueId = (Integer) tempL[0];
                SbiKpiValue temp = (SbiKpiValue) aSession.load(SbiKpiValue.class, kpiValueId);
                SourceBean sb2 = new SourceBean("ROW");
                if (temp != null && temp.getValue() != null) {
                    sb2.setAttribute("x", temp.getBeginDt());
                    sb2.setAttribute("KPI_VALUE", temp.getValue());
                    sb.setAttribute(sb2);
                }
            }
        } else {
            logger.debug("The result list is empty");
            SourceBean sb2 = new SourceBean("ROW");
            sb.setAttribute(sb2);
        }

        toReturn = sb.toString();

    } catch (HibernateException he) {

        if (tx != null)
            tx.rollback();
        logger.error(he);
    } finally {
        if (aSession != null) {
            if (aSession.isOpen())
                aSession.close();
            logger.debug("OUT");
        }
    }

    return toReturn;
}

From source file:it.eng.spagobi.kpi.ou.dao.OrganizationalUnitDAOImpl.java

License:Mozilla Public License

public List<OrganizationalUnitGrantNode> getGrantsValidByDate(Integer kpiModelInstanceId, Date now) {
    logger.debug("IN: kpiModelInstanceId = " + kpiModelInstanceId);
    List<OrganizationalUnitGrantNode> toReturn = new ArrayList<OrganizationalUnitGrantNode>();
    Session aSession = null;/*from  www .  j  a  v a 2 s .  c  o  m*/
    Transaction tx = null;
    try {
        aSession = getSession();
        tx = aSession.beginTransaction();

        Query hibQuery = aSession.createQuery(
                " from SbiOrgUnitGrantNodes n where n.id.kpiModelInstNodeId = ? and ? between n.sbiOrgUnitGrant.startDate and n.sbiOrgUnitGrant.endDate");
        hibQuery.setInteger(0, kpiModelInstanceId);
        hibQuery.setDate(1, now);
        List hibList = hibQuery.list();
        Iterator it = hibList.iterator();

        while (it.hasNext()) {
            toReturn.add(toOrganizationalUnitGrantNode((SbiOrgUnitGrantNodes) it.next(), aSession));
        }
    } finally {
        rollbackIfActiveAndClose(tx, aSession);
    }
    logger.debug("OUT: returning " + toReturn);
    return toReturn;
}

From source file:jp.gmo.zcom.ticket.dao.impl.BookTicketDaoImpl.java

License:Open Source License

/**
 * get list of match/*  w ww  .  jav a2  s. c  o m*/
 * 
 * @param matchDate
 * @return list match
 */
@SuppressWarnings("unchecked")
@Override
public List<Match> getListMatch(Date matchDate) {
    Session session = this.sessionFactory.getCurrentSession();
    // Query get lesson
    Query query = session.getNamedQuery("BookTicketDao.searchListMatch");
    query.setCacheable(true);
    //query.setCacheRegion("BookTicketDao.searchListMatch");

    // Set parameter
    query.setDate("matchDate", matchDate);
    query.setParameter("status", ConstValues.STATUS_VALUES_ON);

    List<Match> result = query.list();
    return result;
}

From source file:kp.dao.data.MocDao.java

public void updateMocInitTskDate(int cid, ArrayList<MocInitTskDt> tsklist) {
    final Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction tx = null;/*  w  w w. jav a2 s .  c  o m*/
    try {
        tx = session.beginTransaction();
        for (MocInitTskDt b : tsklist) {
            Query queryObj = session.getNamedQuery("updateMocInitTskDate");
            queryObj.setInteger("cid", cid);
            queryObj.setInteger("doc_id", b.getDocId());
            queryObj.setDate("com_date", b.getComDate());
            int result = queryObj.executeUpdate();
        }
        tx.commit();
    } catch (HibernateException e) {
        if (tx != null) {
            tx.rollback();
        }
        Logger.getLogger(UserDao.class.getName()).log(Level.SEVERE, "Exception : {0}", e);
        session.close();
    } finally {
        session.close();
    }

}

From source file:md.ibanc.rm.spring.dao.ExchangeRateDAOImpl.java

@Override
public List findExchangeRateByDate(Date date) {

    Session session = this.sessionFactory.getCurrentSession();

    Query query = session.createQuery(
            " SELECT exchangeRate FROM ExchangeRate exchangeRate " + " WHERE  exchangeRate.dataIns=:Date ");

    query.setDate("Date", date);

    List list = query.list();/*from   w  ww .ja v  a2 s.  c o m*/

    return list;
}

From source file:monasca.api.infrastructure.persistence.hibernate.AlarmSqlRepoImpl.java

License:Apache License

private List<Alarm> findInternal(String tenantId, String alarmDefId, String metricName,
        Map<String, String> metricDimensions, AlarmState state, String lifecycleState, String link,
        DateTime stateUpdatedStart, String offset, int limit, boolean enforceLimit) {
    Session session = null;//from  w  ww .  j a  va2  s. c o  m

    List<Alarm> alarms = new LinkedList<>();

    try {
        Query query;
        session = sessionFactory.openSession();

        StringBuilder sbWhere = new StringBuilder("(select a.id " + "from alarm as a, alarm_definition as ad "
                + "where ad.id = a.alarm_definition_id " + "  and ad.deleted_at is null "
                + "  and ad.tenant_id = :tenantId ");

        if (alarmDefId != null) {
            sbWhere.append(" and ad.id = :alarmDefId ");
        }

        if (metricName != null) {

            sbWhere.append(" and a.id in (select distinct a.id from alarm as a "
                    + "inner join alarm_metric as am on am.alarm_id = a.id "
                    + "inner join metric_definition_dimensions as mdd "
                    + "  on mdd.id = am.metric_definition_dimensions_id "
                    + "inner join (select distinct id from metric_definition "
                    + "            where name = :metricName) as md "
                    + "  on md.id = mdd.metric_definition_id ");

            buildJoinClauseFor(metricDimensions, sbWhere);

            sbWhere.append(")");

        } else if (metricDimensions != null) {

            sbWhere.append(" and a.id in (select distinct a.id from alarm as a "
                    + "inner join alarm_metric as am on am.alarm_id = a.id "
                    + "inner join metric_definition_dimensions as mdd "
                    + "  on mdd.id = am.metric_definition_dimensions_id ");

            buildJoinClauseFor(metricDimensions, sbWhere);

            sbWhere.append(")");

        }

        if (state != null) {
            sbWhere.append(" and a.state = :state");
        }

        if (lifecycleState != null) {
            sbWhere.append(" and a.lifecycle_state = :lifecycleState");
        }

        if (link != null) {
            sbWhere.append(" and a.link = :link");
        }

        if (stateUpdatedStart != null) {
            sbWhere.append(" and a.state_updated_at >= :stateUpdatedStart");
        }

        if (offset != null) {
            sbWhere.append(" and a.id > :offset");
        }

        sbWhere.append(" order by a.id ASC ");

        if (enforceLimit && limit > 0) {
            sbWhere.append(" limit :limit");
        }

        sbWhere.append(")");

        String sql = String.format(FIND_ALARMS_SQL, sbWhere);

        try {
            query = session.createSQLQuery(sql);
        } catch (Exception e) {
            logger.error("Failed to bind query {}, error is {}", sql, e.getMessage());
            throw new RuntimeException("Failed to bind query", e);
        }

        query.setString("tenantId", tenantId);
        if (alarmDefId != null) {
            query.setString("alarmDefId", alarmDefId);
        }

        if (offset != null) {
            query.setString("offset", offset);
        }

        if (metricName != null) {
            query.setString("metricName", metricName);
        }

        if (state != null) {
            query.setString("state", state.name());
        }

        if (link != null) {
            query.setString("link", link);
        }

        if (lifecycleState != null) {
            query.setString("lifecycleState", lifecycleState);
        }

        if (stateUpdatedStart != null) {
            query.setDate("stateUpdatedStart", stateUpdatedStart.toDateTime(DateTimeZone.UTC).toDate());
        }

        if (enforceLimit && limit > 0) {
            query.setInteger("limit", limit + 1);
        }

        bindDimensionsToQuery(query, metricDimensions);

        List<Object[]> alarmList = (List<Object[]>) query.list();
        alarms = createAlarms(alarmList);

    } finally {
        if (session != null) {
            session.close();
        }
    }
    return alarms;
}

From source file:motor.MOTOR.java

/**
 * Mtodo que modifica los datos de un coche ya existente. Usa HQL
 * parametrizado/*  www  .j a  v  a 2 s . c  o m*/
 *
 * @return el numero de registros afectados
 * @param coche el objeto coche con los datos a modificar
 * @throws ExceptionMotor excepcion que integra el mensaje de error al
 * usuario, el codigo de error y el mensaje de error que nos ha devuelto la
 * base de datos
 */
public int modificarCoche(Coche coche) throws ExceptionMotor {
    int registrosAfectados = -1;

    // Se inicia una transaccin en la sesin creada
    Transaction t = sesion.beginTransaction();

    // Se crea la query HQL
    Query q = sesion.createQuery("update Coche set cliente.clienteId = :coclienteId,"
            + "marca = :comarca, modelo = :comodelo, matricula = :comatricula , " + "itv = :coitv "
            + "where cocheId = :cococheId");
    q.setString("comarca", coche.getMarca());
    q.setString("comodelo", coche.getModelo());
    q.setString("comatricula", coche.getMatricula());
    q.setDate("coitv", coche.getItv());
    q.setBigDecimal("cococheId", coche.getCocheId());
    q.setBigDecimal("coclienteId", coche.getCliente().getClienteId());

    try {
        // Se ejecuta la query q
        registrosAfectados = q.executeUpdate();

        // Se confirma la transaccin
        t.commit();
    } catch (GenericJDBCException jdbcEx) {
        ExceptionMotor ex = new ExceptionMotor();

        if (jdbcEx.getErrorCode() == 2291) {
            ex.setCodigoErrorAdministrador(jdbcEx.getErrorCode());
            ex.setSentenciaSQL(jdbcEx.getSQL());
            ex.setMensajeErrorUsuario("Error. No existe ese ciente");
            ex.setMensajeErrorAdministrador("NO SE HA INTRODUCIDO UN COCHE_ID QUE EXISTA");
        }
        if (jdbcEx.getErrorCode() == 1407) {
            ex.setCodigoErrorAdministrador(jdbcEx.getErrorCode());
            ex.setSentenciaSQL(jdbcEx.getSQL());
            ex.setMensajeErrorUsuario(
                    "Error. Los siguientes campos son obligastorios: marca, modelo, matricula, itv");
            ex.setMensajeErrorAdministrador("VIOLACION DE NOT_NULL");
        }
        if (jdbcEx.getErrorCode() == 20002) {
            ex.setCodigoErrorAdministrador(jdbcEx.getErrorCode());
            ex.setSentenciaSQL(jdbcEx.getSQL());
            ex.setMensajeErrorUsuario("Error. La ITV debe estar pasada");
            ex.setMensajeErrorAdministrador("VILACION DE TRIGGER ITV_PASADA");
        }
        if (jdbcEx.getErrorCode() == 20004) {
            ex.setCodigoErrorAdministrador(jdbcEx.getErrorCode());
            ex.setSentenciaSQL(jdbcEx.getSQL());
            ex.setMensajeErrorUsuario("Error. El taller esta cerrado");
            ex.setMensajeErrorAdministrador("VIOLACION DE TRIGGER TALLER ABIERTO");
        }
        throw ex;
    } catch (ConstraintViolationException cvEx) {
        ExceptionMotor ex = new ExceptionMotor();

        if (cvEx.getErrorCode() == 1) {
            ex.setCodigoErrorAdministrador(cvEx.getErrorCode());
            ex.setSentenciaSQL(cvEx.getSQL());
            ex.setMensajeErrorUsuario("Error. El campo matricula es unico");
            ex.setMensajeErrorAdministrador("VIOLACION DE UNIQUE KEY");
        }
        throw ex;
    } catch (StaleStateException ssEx) {
        ExceptionMotor ex = new ExceptionMotor();

        ex.setMensajeErrorUsuario("Error. No existe ese coche");
        ex.setMensajeErrorAdministrador("SE HA INTRODUCIDO UN COCHE_ID QUE NO EXISTE");
        throw ex;
    } catch (Exception e) {
        ExceptionMotor ex = new ExceptionMotor();

        ex.setCodigoErrorAdministrador(0);
        ex.setMensajeErrorUsuario("Error general en el sistema, Consulte con el administrador");
        ex.setMensajeErrorAdministrador(e.getMessage());

        throw ex;
    }
    return registrosAfectados;
}

From source file:mx.edu.um.mateo.activos.dao.impl.ActivoDaoHibernate.java

License:Open Source License

@Override
public void depreciar(Date fecha, Long empresaId) {
    Date fechaModificacion = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(fecha);/*from  w  w w  . ja va 2s  .  co m*/
    cal.set(Calendar.HOUR_OF_DAY, 23);
    cal.set(Calendar.MINUTE, 59);
    cal.set(Calendar.SECOND, 59);
    cal.set(Calendar.MILLISECOND, 999);
    fecha = cal.getTime();
    Query query = currentSession().createQuery(
            "select new Activo(a.id, a.version, a.moi, a.fechaCompra, a.tipoActivo.porciento, a.tipoActivo.vidaUtil, a.inactivo, a.fechaInactivo) from Activo a inner join a.tipoActivo where a.empresa.id = :empresaId and a.fechaCompra <= :fecha");
    query.setLong("empresaId", empresaId);
    query.setDate("fecha", fecha);
    @SuppressWarnings("unchecked")
    List<Activo> activos = query.list();
    int cont = 0;
    int total = activos.size();
    for (Activo activo : activos) {
        if (++cont % 1000 == 0) {
            log.debug("Depreciando activo {} ({} / {})", new Object[] { activo.getId(), cont, total });
        }

        activo = deprecia(activo, fecha);

        query = currentSession().createQuery(
                "update Activo a set a.fechaDepreciacion = :fecha, a.depreciacionAnual = :depreciacionAnual, a.depreciacionMensual = :depreciacionMensual, a.depreciacionAcumulada = :depreciacionAcumulada, a.valorNeto = :valorNeto, a.fechaModificacion = :fechaModificacion where a.id = :activoId");
        query.setDate("fecha", fecha);
        query.setBigDecimal("depreciacionAnual", activo.getDepreciacionAnual());
        query.setBigDecimal("depreciacionMensual", activo.getDepreciacionMensual());
        query.setBigDecimal("depreciacionAcumulada", activo.getDepreciacionAcumulada());
        query.setBigDecimal("valorNeto", activo.getValorNeto());
        query.setTimestamp("fechaModificacion", fechaModificacion);
        query.setLong("activoId", activo.getId());
        query.executeUpdate();
    }
    currentSession().flush();
    log.info("Se han depreciado los activos de la empresa {} para la fecha de {}", empresaId, fecha);
}

From source file:mx.edu.um.mateo.activos.dao.impl.ActivoDaoHibernate.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from   www.  j  ava  2s  .  co  m
public void arreglaFechas(OutputStream out) {
    log.debug("Arreglando fechas");
    Date inicio = new Date();
    XSSFWorkbook wb = new XSSFWorkbook();
    CreationHelper createHelper = wb.getCreationHelper();
    CellStyle cellStyle = wb.createCellStyle();
    cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("dd/mm/yyyy"));
    XSSFSheet fechas = wb.createSheet("FECHAS-ANTERIORES");
    int fechasRow = 0;
    XSSFSheet fechas2 = wb.createSheet("FECHAS-POSTERIORES");
    int fechas2Row = 0;
    Transaction tx = null;
    try {
        tx = currentSession().beginTransaction();
        Query update = currentSession()
                .createQuery("update Activo set fechaCompra = :fechaCompra where id = :id");
        Query query = currentSession().createQuery(
                "select new Activo(a.id, a.descripcion, a.fechaCompra, a.tipoActivo.cuenta.id.idCtaMayor, a.centroCosto.id.idCosto, a.codigo) from Activo a where a.fechaCompra < :fechaCompra order by a.tipoActivo.cuenta.id.idCtaMayor, a.centroCosto.id.idCosto, a.codigo");
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        query.setDate("fechaCompra", sdf.parse("01/01/1970"));
        List<Activo> activos = query.list();
        int cont = 0;
        for (Activo activo : activos) {
            Calendar cal1 = Calendar.getInstance();
            cal1.setTime(activo.getFechaCompra());
            if (cal1.get(Calendar.YEAR) < 10) {
                log.debug("Pasando al ao 2000 {} - {}", activo.getDescripcion(), activo.getFechaCompra());
                cal1.add(Calendar.YEAR, 2000);
                update.setDate("fechaCompra", cal1.getTime());
                update.setLong("id", activo.getId());
                update.executeUpdate();
                XSSFRow renglon = fechas.createRow(fechasRow++);
                renglon.createCell(0).setCellValue(activo.getTipoActivoCuenta());
                renglon.createCell(1).setCellValue(activo.getCentroCostoCuenta());
                renglon.createCell(2).setCellValue(activo.getCodigo());
                renglon.createCell(3).setCellValue(activo.getDescripcion());
                renglon.createCell(4).setCellValue(sdf.format(activo.getFechaCompra()));
                Cell cell = renglon.createCell(5);
                cell.setCellValue(cal1.getTime());
                cell.setCellStyle(cellStyle);
            } else if (cal1.get(Calendar.YEAR) < 100) {
                log.debug("Pasando al ao 1900 {} - {}", activo.getDescripcion(), activo.getFechaCompra());
                cal1.add(Calendar.YEAR, 1900);
                update.setDate("fechaCompra", cal1.getTime());
                update.setLong("id", activo.getId());
                update.executeUpdate();
                XSSFRow renglon = fechas.createRow(fechasRow++);
                renglon.createCell(0).setCellValue(activo.getTipoActivoCuenta());
                renglon.createCell(1).setCellValue(activo.getCentroCostoCuenta());
                renglon.createCell(2).setCellValue(activo.getCodigo());
                renglon.createCell(3).setCellValue(activo.getDescripcion());
                renglon.createCell(4).setCellValue(sdf.format(activo.getFechaCompra()));
                Cell cell = renglon.createCell(5);
                cell.setCellValue(cal1.getTime());
                cell.setCellStyle(cellStyle);
            } else if (cal1.get(Calendar.YEAR) >= 1900 && cal1.get(Calendar.YEAR) <= 1912) {
                log.debug("Pasando al ao 2000 {} - {}", activo.getDescripcion(), activo.getFechaCompra());
                cal1.add(Calendar.YEAR, 100);
                update.setDate("fechaCompra", cal1.getTime());
                update.setLong("id", activo.getId());
                update.executeUpdate();
                XSSFRow renglon = fechas.createRow(fechasRow++);
                renglon.createCell(0).setCellValue(activo.getTipoActivoCuenta());
                renglon.createCell(1).setCellValue(activo.getCentroCostoCuenta());
                renglon.createCell(2).setCellValue(activo.getCodigo());
                renglon.createCell(3).setCellValue(activo.getDescripcion());
                renglon.createCell(4).setCellValue(sdf.format(activo.getFechaCompra()));
                Cell cell = renglon.createCell(5);
                cell.setCellValue(cal1.getTime());
                cell.setCellStyle(cellStyle);
            }
            cont++;
        }
        currentSession().flush();

        query = currentSession().createQuery(
                "select new Activo(a.id, a.descripcion, a.fechaCompra, a.tipoActivo.cuenta.id.idCtaMayor, a.centroCosto.id.idCosto, a.codigo) from Activo a where a.fechaCompra > :fechaCompra order by a.tipoActivo.cuenta.id.idCtaMayor, a.centroCosto.id.idCosto, a.codigo");
        query.setDate("fechaCompra", new Date());
        activos = query.list();
        for (Activo activo : activos) {
            Calendar cal1 = Calendar.getInstance();
            cal1.setTime(activo.getFechaCompra());
            if (cal1.get(Calendar.YEAR) < 2020) {
                log.debug("Quitandole 10 anios {} - {}", activo.getDescripcion(), activo.getFechaCompra());
                cal1.add(Calendar.YEAR, -10);
                update.setDate("fechaCompra", cal1.getTime());
                update.setLong("id", activo.getId());
                update.executeUpdate();
                XSSFRow renglon = fechas2.createRow(fechas2Row++);
                renglon.createCell(0).setCellValue(activo.getTipoActivoCuenta());
                renglon.createCell(1).setCellValue(activo.getCentroCostoCuenta());
                renglon.createCell(2).setCellValue(activo.getCodigo());
                renglon.createCell(3).setCellValue(activo.getDescripcion());
                renglon.createCell(4).setCellValue(sdf.format(activo.getFechaCompra()));
                Cell cell = renglon.createCell(5);
                cell.setCellValue(cal1.getTime());
                cell.setCellStyle(cellStyle);
            } else if (cal1.get(Calendar.YEAR) >= 2020) {
                log.debug("Pasando al ao 1900 {} - {}", activo.getDescripcion(), activo.getFechaCompra());
                cal1.add(Calendar.YEAR, -100);
                update.setDate("fechaCompra", cal1.getTime());
                update.setLong("id", activo.getId());
                update.executeUpdate();
                XSSFRow renglon = fechas2.createRow(fechas2Row++);
                renglon.createCell(0).setCellValue(activo.getTipoActivoCuenta());
                renglon.createCell(1).setCellValue(activo.getCentroCostoCuenta());
                renglon.createCell(2).setCellValue(activo.getCodigo());
                renglon.createCell(3).setCellValue(activo.getDescripcion());
                renglon.createCell(4).setCellValue(sdf.format(activo.getFechaCompra()));
                Cell cell = renglon.createCell(5);
                cell.setCellValue(cal1.getTime());
                cell.setCellStyle(cellStyle);
            }
            cont++;
        }
        currentSession().flush();

        tx.commit();
        log.debug("Termino actualizando {} de {} en {}",
                new Object[] { cont, activos.size(), ((new Date().getTime() - inicio.getTime()) / 1000) });
        wb.write(out);
    } catch (ParseException | HibernateException | IOException e) {
        log.error("No se pudieron arreglar las fechas de los activos", e);
        tx.rollback();
        throw new RuntimeException("No se pudieron arreglar las fechas de los actios", e);
    }
}