Soy nuevo en hibernación . Quiero pasar 2 valores de la columna y quiero hibernar para volver clave principal de la tabla.

String queryString = "select perId from Permission where document.docId=1 and user.id=2";
return getHibernateTemplate().find(queryString);

Pero este método retorna la Lista.
¿Cómo puedo devolver valor int.

OriginalEl autor vikas27 | 2011-10-22

3 Comentarios

  1. 15

    Utilizar el uniqueResult() en el método de Consulta. ver aquí para un ejemplo de la lectura de la api de aquí.

    Aquí es un ejemplo. Reemplace los marcadores de posición como la necesidad de utilizarlos.

        sessionFactory = getHibernateTemplate().getSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        Query query = session
                .createQuery("select value from table where ...");
        query.setParameters("param1", value1);
        result = (Type) query.uniqueResult();
    Asegúrese de que la consulta va a dar solo 1 resultado. Se trow NonUniqueResultException – si hay más de un resultado coincidente.

    OriginalEl autor ManuPK

  2. 4

    Se podría hacer algo como:

     String sql = "select count(*) from table where ...";
     BigDecimal count = (BigDecimal) hibernateTemplate.execute(
       new HibernateCallback() { 
        public Object doInHibernate(Session session) throws HibernateException {
         SQLQuery query = session.createSQLQuery(sql);
         return (BigDecimal) query.uniqueResult();
        }});
     return count;
    ¿Cuáles son los beneficios de este enfoque?

    OriginalEl autor Francisco Spaeth

  3. 0

    Aquí es otra forma de usar addScalar:

    Query query = session.createQuery("select value from table where param1 = :param1").addScalar("value", Type);
    query.setParameters("param1", value1);
    result = (Type) query.uniqueResult();

    Ejemplo de Cadena:

    Query query = session.createQuery("select value from table where param1 = :param1").addScalar("value", StandardBasicTypes.STRING);
    query.setParameters("param1", value1);
    result = (String) query.uniqueResult();

    OriginalEl autor Kamiel Ahmadpour

Dejar respuesta

Please enter your comment!
Please enter your name here