如何使用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中,建议以特定类的List的形式恢复结果,而不是使用Select ...