Example usage for org.hibernate SQLQuery setInteger

List of usage examples for org.hibernate SQLQuery setInteger

Introduction

In this page you can find the example usage for org.hibernate SQLQuery setInteger.

Prototype

@Deprecated
@SuppressWarnings("unchecked")
default Query<R> setInteger(int position, int val) 

Source Link

Document

Bind a positional int-valued parameter.

Usage

From source file:com.wavemaker.runtime.data.util.QueryHandler.java

License:Open Source License

@Override
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
    String methodName = m.getName();

    if (methodName == null || methodName.length() == 0) {
        return null;
    }/*from  w w w .jav  a2  s  .c  o m*/

    if (!methodName.equals("save") && !methodName.equals("update") && !methodName.equals("delete")
            && !methodName.equals("getNamedQuery") && !methodName.equals("get")
            && !methodName.equals("createQuery") && !methodName.equals("createSQLQuery")) {
        return m.invoke(this.target, args);
    }

    String setterName;

    WMAppContext wmApp = WMAppContext.getInstance();
    String tFldName = wmApp.getTenantFieldName();
    int tid = SecurityService.getTenantId();
    boolean tidExists = true;

    if (tid == -1) {
        tid = wmApp.getDefaultTenantID();
    }

    String qryStr;
    this.tenantAdded = false;
    if (methodName.equalsIgnoreCase("createQuery")) {
        qryStr = modifySQL(args[0], tFldName, tid);
        Query qry = (Query) m.invoke(this.target, qryStr);
        if (this.tenantAdded) {
            qry.setInteger("wmtidval", tid);
        }
        return qry;
    } else if (methodName.equalsIgnoreCase("createSQLQuery")) {
        qryStr = modifySQL(args[0], tFldName, tid);
        SQLQuery sqlqry = (SQLQuery) m.invoke(this.target, qryStr);
        if (this.tenantAdded) {
            sqlqry.setInteger("wmtidval", tid);
        }
        return sqlqry;
    } else if (methodName.equalsIgnoreCase("getNamedQuery")) {
        Map namedQueries = this.cfg.getNamedQueries();
        NamedQueryDefinition qd = (NamedQueryDefinition) namedQueries.get(args[0]);
        qryStr = qd.getQuery();
        Query qry = (Query) m.invoke(this.target, args);
        if (qryStr.contains("wmtidval")) {
            qry.setInteger("wmtidval", tid);
        }
        return qry;
    } else if (methodName.equalsIgnoreCase("get")) {
        Object o = m.invoke(this.target, args);
        Class<?> cls = o.getClass();
        Object no = cls.newInstance();
        cloneObject(o, no, cls);
        String t = tFldName.substring(0, 1).toUpperCase();
        String getterName = "get" + t + tFldName.substring(1);
        Method tidGetter = null;
        int val;
        try {
            tidGetter = cls.getMethod(getterName);
        } catch (NoSuchMethodException ne) {
            tidExists = false;
        }
        if (tidExists) {
            val = (Integer) tidGetter.invoke(o);
            if (tid != val) {
                String err = "*** Security Viloation - Tenant ID mismatch ***";
                err = err + "*** Tenant ID passed = " + val + ", Tenant ID of login user = " + tid + " ***";
                throw new WMRuntimeException(err);
            }
        }
        cloneObject(no, o, cls);
        return o;
    } else if (methodName.equalsIgnoreCase("update")) {
        Object o = args[0];
        Class<?> cls = o.getClass();
        String t = tFldName.substring(0, 1).toUpperCase();
        String getterName = "get" + t + tFldName.substring(1);
        Method tidGetter = null;
        Object no;
        int val;
        try {
            tidGetter = cls.getMethod(getterName);
        } catch (NoSuchMethodException ne) {
            tidExists = false;
        }

        if (tidExists) {
            val = (Integer) tidGetter.invoke(o);
            if (tid != val) {
                String err = "*** Security Viloation - Tenant ID mismatch ***";
                err = err + "*** Tenant ID passed = " + val + ", Tenant ID of login user = " + tid + " ***";
                throw new WMRuntimeException(err);
            } else {
                no = cls.newInstance();
                cloneObject(o, no, cls);
                Class tcls = this.target.getClass();
                Method rm = tcls.getMethod("refresh", Object.class);
                rm.invoke(this.target, o);
                val = (Integer) tidGetter.invoke(o);
                if (tid != val) {
                    String err = "*** Security Viloation - Tenant ID mismatch ***";
                    err = err + "*** You can only update records that belong to you ***";
                    throw new WMRuntimeException(err);
                }
            }
            cloneObject(no, o, cls);
        }
        return m.invoke(this.target, args);
    } else { // save, delete, contains
        Object o = args[0];
        Class<?> cls = o.getClass();
        String s = tFldName.substring(0, 1).toUpperCase();
        setterName = "set" + s + tFldName.substring(1);
        Method setter = null;
        try {
            setter = cls.getMethod(setterName, Integer.class);
        } catch (NoSuchMethodException ne) {
            tidExists = false;
        }
        if (tidExists) {
            setter.invoke(o, tid);
        }

        return m.invoke(this.target, args);
    }
}

From source file:es.emergya.bbdd.dao.RecursoHome.java

License:Open Source License

@Transactional(readOnly = true, rollbackFor = Throwable.class, propagation = Propagation.REQUIRED)
public RecursoBean getByDispositivoSQL(Integer issi) {

    SQLQuery query = getSession().createSQLQuery("select r.x_recurso as "
            + "id, r.identificador as identificador, r.habilitado as habilitado, "
            + "r.tipo as \"tipoRecurso\", s.nombre as "
            + "subflota, r.dispositivo as dispositivo from recursos as r join flotas s on r.flota_x_flota = s.x_flota "
            + "where r.dispositivo = :DISPOSITIVO");
    query.setInteger("DISPOSITIVO", issi);
    query.setResultTransformer(Transformers.aliasToBean(RecursoBean.class));
    RecursoBean recurso = (RecursoBean) query.uniqueResult();

    return recurso;

}

From source file:es.logongas.fpempresa.dao.empresa.impl.OfertaDAOImplHibernate.java

License:Open Source License

@Override
public List<Oferta> getOfertasUsuarioTitulado(DataSession dataSession, Usuario usuario, Provincia provincia,
        Date fechaInicio, Date fechaFin) {
    Session session = (Session) dataSession.getDataBaseSessionImpl();

    StringBuilder sb = new StringBuilder();

    sb.append("SELECT oferta.*\n" + "FROM\n" + "   oferta   \n"
            + "      INNER JOIN  ofertaciclo   ON oferta.idOferta=ofertaciclo.idOferta \n"
            + "      INNER JOIN  municipio as municipiooferta ON oferta.idMunicipio=municipiooferta.idMunicipio\n"
            + "      INNER JOIN  empresa           ON oferta.idEmpresa=empresa.idEmpresa,\n" + "   usuario \n"
            + "      INNER JOIN  formacionacademica ON usuario.idTitulado=formacionacademica.idTitulado \n"
            + "      INNER JOIN  titulado                     ON usuario.idTitulado=titulado.idTitulado  \n"
            + "      INNER JOIN  municipio as municipiotitulado           ON titulado.idMunicipio=municipiotitulado.idMunicipio\n"
            + "WHERE\n" + "   oferta.cerrada <> 1 AND\n" + "   usuario.idIdentity=? AND\n"
            + "   empresa.idCentro IS NULL AND\n" + "   ofertaciclo.idCiclo=formacionacademica.idCiclo AND\n");

    if (provincia != null) {
        sb.append("   municipiooferta.idProvincia=? AND\n");
    }//  w  w  w. ja va  2 s  .c  o  m
    if (fechaInicio != null) {
        sb.append("   oferta.fecha>=? AND\n");
    }
    if (fechaFin != null) {
        sb.append("   oferta.fecha<=? AND\n");
    }

    sb.append(
            "   not exists (SELECT * FROM  candidato WHERE candidato.idIdentity=usuario.idIdentity AND candidato.idOferta=oferta.idOferta)\n");

    sb.append(" UNION DISTINCT \n");

    sb.append("SELECT oferta.*\n" + "FROM\n" + "   oferta   \n"
            + "      INNER JOIN  ofertaciclo   ON oferta.idOferta=ofertaciclo.idOferta \n"
            + "      INNER JOIN  municipio as municipiooferta ON oferta.idMunicipio=municipiooferta.idMunicipio\n"
            + "      INNER JOIN  empresa           ON oferta.idEmpresa=empresa.idEmpresa,\n" + "   usuario \n"
            + "      INNER JOIN  formacionacademica ON usuario.idTitulado=formacionacademica.idTitulado   \n"
            + "WHERE\n" + "   oferta.cerrada <> 1 AND\n" + "   usuario.idIdentity=? AND\n"
            + "   empresa.idCentro = formacionacademica.idCentro AND\n"
            + "   ofertaciclo.idCiclo=formacionacademica.idCiclo AND\n");
    if (provincia != null) {
        sb.append("   municipiooferta.idProvincia=? AND\n");
    }
    if (fechaInicio != null) {
        sb.append("   oferta.fecha>=? AND\n");
    }
    if (fechaFin != null) {
        sb.append("   oferta.fecha<=? AND\n");
    }

    sb.append(
            "   not exists (SELECT * FROM candidato WHERE candidato.idIdentity=usuario.idIdentity AND candidato.idOferta=oferta.idOferta)");
    sb.append(" ORDER BY fecha DESC");

    SQLQuery sqlQuery = session.createSQLQuery(sb.toString());
    sqlQuery.addEntity(Oferta.class);

    int paramNumber = 0;

    sqlQuery.setInteger(paramNumber++, usuario.getIdIdentity());
    if (provincia != null) {
        sqlQuery.setInteger(paramNumber++, provincia.getIdProvincia());
    }
    if (fechaInicio != null) {
        sqlQuery.setDate(paramNumber++, fechaInicio);
    }
    if (fechaFin != null) {
        sqlQuery.setDate(paramNumber++, fechaFin);
    }
    sqlQuery.setInteger(paramNumber++, usuario.getIdIdentity());
    if (provincia != null) {
        sqlQuery.setInteger(paramNumber++, provincia.getIdProvincia());
    }
    if (fechaInicio != null) {
        sqlQuery.setDate(paramNumber++, fechaInicio);
    }
    if (fechaFin != null) {
        sqlQuery.setDate(paramNumber++, fechaFin);
    }

    return (List<Oferta>) sqlQuery.list();
}

From source file:es.logongas.fpempresa.dao.estadisticas.impl.EstadisticaDAOImplHibernate.java

License:Open Source License

@Override
public List<FamiliaEstadistica> getOfertasGroupByFamilia(DataSession dataSession, Empresa empresa) {
    Session session = (Session) dataSession.getDataBaseSessionImpl();

    String sql = "SELECT \n" + "   familia.idFamilia,familia.descripcion,COUNT(*) as valor\n" + "FROM\n"
            + "   familia JOIN ( oferta  INNER  JOIN empresa ON oferta.idEmpresa=empresa.idEmpresa ) ON familia.idFamilia=oferta.idFamilia\n"
            + "WHERE\n" + "   empresa.idEmpresa=?" + "\n" + "GROUP BY\n"
            + "   familia.idFamilia,familia.descripcion";

    SQLQuery sqlQuery = session.createSQLQuery(sql);
    sqlQuery.setInteger(0, empresa.getIdEmpresa());

    return getListFamiliaEstadistica(sqlQuery.list());
}

From source file:es.logongas.fpempresa.dao.estadisticas.impl.EstadisticaDAOImplHibernate.java

License:Open Source License

@Override
public List<FamiliaEstadistica> getOfertasGroupByFamilia(DataSession dataSession, Centro centro,
        Integer anyoInicio, Integer anyoFin) {
    Session session = (Session) dataSession.getDataBaseSessionImpl();

    String sql = "SELECT \n" + "   familia.idFamilia,familia.descripcion,COUNT(*) as valor\n" + "FROM\n"
            + "   familia JOIN ( oferta  INNER  JOIN empresa ON oferta.idEmpresa=empresa.idEmpresa ) ON familia.idFamilia=oferta.idFamilia\n"
            + "WHERE\n" + "   empresa.idCentro=?"
            + (anyoInicio != null ? " AND YEAR(oferta.fecha)>=" + anyoInicio.intValue() + " " : "")
            + (anyoFin != null ? " AND YEAR(oferta.fecha)<=" + anyoFin.intValue() + " " : "") + "\n"
            + "GROUP BY\n" + "   familia.idFamilia,familia.descripcion";

    SQLQuery sqlQuery = session.createSQLQuery(sql);
    sqlQuery.setInteger(0, centro.getIdCentro());

    return getListFamiliaEstadistica(sqlQuery.list());
}

From source file:es.logongas.fpempresa.dao.estadisticas.impl.EstadisticaDAOImplHibernate.java

License:Open Source License

@Override
public List<FamiliaEstadistica> getCandidatosGroupByFamilia(DataSession dataSession, Empresa empresa) {
    Session session = (Session) dataSession.getDataBaseSessionImpl();

    String sql = "SELECT \n" + "   familia.idFamilia,familia.descripcion,COUNT(*) as valor\n" + "FROM\n"
            + "   familia JOIN ( oferta  INNER  JOIN empresa ON oferta.idEmpresa=empresa.idEmpresa INNER  JOIN candidato ON oferta.idOferta=candidato.idOferta ) ON familia.idFamilia=oferta.idFamilia\n"
            + "WHERE\n" + "  empresa.idEmpresa=?\n" + "GROUP BY\n" + "   familia.idFamilia,familia.descripcion";

    SQLQuery sqlQuery = session.createSQLQuery(sql);
    sqlQuery.setInteger(0, empresa.getIdEmpresa());

    return getListFamiliaEstadistica(sqlQuery.list());
}

From source file:es.logongas.fpempresa.dao.estadisticas.impl.EstadisticaDAOImplHibernate.java

License:Open Source License

@Override
public List<FamiliaEstadistica> getCandidatosGroupByFamilia(DataSession dataSession, Centro centro,
        Integer anyoInicio, Integer anyoFin) {
    Session session = (Session) dataSession.getDataBaseSessionImpl();

    String sql = "SELECT \n" + "   familia.idFamilia,familia.descripcion,COUNT(*) as valor\n" + "FROM\n"
            + "   familia JOIN ( oferta  INNER  JOIN empresa ON oferta.idEmpresa=empresa.idEmpresa INNER  JOIN candidato ON oferta.idOferta=candidato.idOferta ) ON familia.idFamilia=oferta.idFamilia\n"
            + "WHERE\n" + "  empresa.idCentro=?\n"
            + (anyoInicio != null ? " AND YEAR(candidato.fecha)>=" + anyoInicio.intValue() + " " : "")
            + (anyoFin != null ? " AND YEAR(candidato.fecha)<=" + anyoFin.intValue() + " " : "") + "GROUP BY\n"
            + "   familia.idFamilia,familia.descripcion";

    SQLQuery sqlQuery = session.createSQLQuery(sql);
    sqlQuery.setInteger(0, centro.getIdCentro());

    return getListFamiliaEstadistica(sqlQuery.list());
}

From source file:es.logongas.fpempresa.dao.estadisticas.impl.EstadisticaDAOImplHibernate.java

License:Open Source License

@Override
public List<FamiliaEstadistica> getTitulosFPGroupByFamilia(DataSession dataSession, Centro centro,
        Integer anyoInicio, Integer anyoFin) {
    Session session = (Session) dataSession.getDataBaseSessionImpl();

    String sql = "SELECT \n"
            + "   familia.idFamilia,familia.descripcion, COUNT(formacionacademica.idTitulado) as valor\n"
            + "FROM\n"
            + "   familia JOIN (ciclo  JOIN formacionacademica  ON ciclo.idCiclo=formacionacademica.idCiclo) ON familia.idFamilia=ciclo.idFamilia\n"
            + "WHERE\n" + "   formacionacademica.idCentro=?\n"
            + (anyoInicio != null ? " AND YEAR(formacionacademica.fecha)>=" + anyoInicio.intValue() + " " : "")
            + (anyoFin != null ? " AND YEAR(formacionacademica.fecha)<=" + anyoFin.intValue() + " " : "")
            + "GROUP BY\n" + "   familia.idFamilia,familia.descripcion";

    SQLQuery sqlQuery = session.createSQLQuery(sql);
    sqlQuery.setInteger(0, centro.getIdCentro());
    return getListFamiliaEstadisticaConCiclos(dataSession, sqlQuery.list(), centro, anyoInicio, anyoFin);
}

From source file:es.logongas.fpempresa.dao.estadisticas.impl.EstadisticaDAOImplHibernate.java

License:Open Source License

private List<FamiliaEstadistica> getListFamiliaEstadisticaConCiclos(DataSession dataSession,
        List<Object[]> datos, Centro centro, Integer anyoInicio, Integer anyoFin) {
    List<FamiliaEstadistica> familiaEstadisticas = new ArrayList<FamiliaEstadistica>();
    Session session = (Session) dataSession.getDataBaseSessionImpl();

    String sql = "";

    for (Object[] dato : datos) {
        sql = "SELECT \n"
                + "  count(formacionacademica.idTitulado) as 'Valor', ciclo.descripcion, ciclo.idCiclo \n"
                + "FROM \n"
                + "  (familia JOIN ciclo ON ciclo.idFamilia=familia.idFamilia) JOIN formacionacademica ON formacionacademica.idCiclo = ciclo.idCiclo  AND formacionacademica.idCentro = ? "
                + "WHERE " + "  ciclo.idFamilia = ? "
                + (anyoInicio != null ? " AND YEAR(formacionacademica.fecha)>=" + anyoInicio.intValue() + " "
                        : "")
                + (anyoFin != null ? " AND YEAR(formacionacademica.fecha)<=" + anyoFin.intValue() + " " : "")
                + "GROUP BY " + "  ciclo.idCiclo";
        SQLQuery sqlQuery = session.createSQLQuery(sql);
        sqlQuery.setInteger(0, (Integer) centro.getIdCentro());
        sqlQuery.setInteger(1, (Integer) dato[0]);
        List<CicloEstadistica> listCiclos = getListCicloEstadistica(sqlQuery.list());
        FamiliaEstadistica familiaEstadistica = new FamiliaEstadistica((Integer) dato[0], (String) dato[1],
                ((Number) dato[2]).intValue(), listCiclos);

        familiaEstadisticas.add(familiaEstadistica);
    }/*from   ww w. j  a va2s . c o m*/

    return familiaEstadisticas;
}

From source file:es.logongas.fpempresa.dao.titulado.impl.TituladoDAOImplHibernate.java

@Override
public List<Titulado> getTituladosSuscritosPorProvinciaOfertaYCiclosOferta(DataSession dataSession,
        Oferta oferta) {//from   w w  w  .ja v  a2  s .c o  m

    Session session = (Session) dataSession.getDataBaseSessionImpl();

    StringBuilder stringBuilder = new StringBuilder();

    String query = "" + "SELECT DISTINCT titulado.* FROM titulado\n"
            + "NATURAL JOIN tituladoprovincianotificacion\n" + "NATURAL JOIN formacionacademica\n"
            + "WHERE titulado.notificarPorEmail = 1\n" + "AND tituladoprovincianotificacion.idProvincia = (\n"
            + "   SELECT idProvincia\n" + "   FROM municipio\n" + "   INNER JOIN oferta\n"
            + "   ON municipio.idMunicipio = oferta.idMunicipio\n" + "   WHERE oferta.idOferta = ?\n" + "   )\n"
            + "AND formacionacademica.idCiclo IN (\n" + "   SELECT idCiclo\n" + "   FROM ofertaciclo\n"
            + "   WHERE ofertaciclo.idOferta = ?\n" + "   )\n";

    Centro centro = oferta.getEmpresa().getCentro();
    if (centro != null) {
        query += "AND titulado.idTitulado IN (\n" + "   SELECT idTitulado\n" + "   FROM formacionacademica\n"
                + "   WHERE formacionacademica.idCentro = ?\n" + "   )";
    }

    stringBuilder.append(query);

    SQLQuery sqlQuery = session.createSQLQuery(stringBuilder.toString());
    sqlQuery.addEntity(Titulado.class);
    sqlQuery.setInteger(0, oferta.getIdOferta());
    sqlQuery.setInteger(1, oferta.getIdOferta());

    if (centro != null) {
        sqlQuery.setInteger(2, centro.getIdCentro());
    }

    return (List<Titulado>) sqlQuery.list();
}