2016-08-03 10 views
0

このクエリをどのようにしてHibernateで正しく返すことができますか?私は戻り値クラスhibernate(パラメータ文字列とbigdecimal)

@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()などでないことを確認してください。

しかし、フィールドをフェッチしているので、そのフィールドを使用することはできません。

休止状態で

は、特定のクラスのリストの形で結果を戻すと何が動作していないSelect ...

関連する問題