2016-08-03 53 views
0

如何使用hibernate正確返回此查詢?返回具有參數字符串和大小的休眠類

幫助我,請

@Override 
    public UsuarioValido validarUserLoggin(String loggin, BigDecimal canal) throws Exception{ 
     Query q = sessionFactory.getCurrentSession().createSQLQuery("SELECT A.ID_USER, '' AS nombre_canal_canales, A.CANAL_ID, '' AS nombre_pto_vta_puntos_de_venta, " 
       + " A.PUNTO_VTA_ID, A.LOGGIN, A.PASSWORD, A.NOMBRES, A.APELLIDOS, A.SN_CAMBIO_PASS, A.ULTINGRESO, A.ULTCMBCONT, A.ESTADO, A.CONTINTENTOS, " 
       + " B.NU_INT_PER AS NRO_INT_PASS, A.EMAIL, B.NDIASINACT AS DIAS_VENC_CLAV " 
       + " FROM "+General.Esquema_DB+".SEG_USER A " 
       + " LEFT JOIN "+General.Esquema_DB+".SEGPOLSEG B ON A.ID_USER = B.ID " 
       + " WHERE A.LOGGIN = '"+loggin+"' AND A.CANAL_ID = "+canal); 
     List rs = q.list(); 

     List<UsuarioValido> validos = q.list(); 
     for (UsuarioValido usuarioValido : validos) { 
      System.out.println(usuarioValido.toString()); 
     } 

     UsuarioValido max = (UsuarioValido)rs.get(0); 
     return max; 


    } 
+0

什麼是不工作?你會得到什麼錯誤? –

回答

0

我通常在這裏:

List<UsuarioValido> rs = q.list(); 

我覺得這是做,而不是容易出錯的最佳方式。但請確保您使用的查詢僅發回該類,而不是該類的字段或從count(),avg()等獲得的結果。

但是由於您正在提取字段,因此您將無法使用該字段。

在Hibernate中,建議帶回特別類的列表形式的結果,而不是使用Select ...