public Usuario authenticate(String usuarioId, String password) { EntityManager em = getEntityManager(); try { Usuario userAuthenticated = null; Query q = em.createQuery( "SELECT u FROM Usuario u WHERE u.usuarioId = :usuarioId and u.password = :password"); q.setParameter("usuarioId", usuarioId); q.setParameter("password", ApplicationLogic.getMD5Encrypted(password)); userAuthenticated = (Usuario) q.getSingleResult(); Sucursal sucursal = userAuthenticated.getSucursal(); Collection<Almacen> almacenCollection = null; if (sucursal != null) { almacenCollection = sucursal.getAlmacenCollection(); } Collection<Perfil> perfilCollection = userAuthenticated.getPerfilCollection(); for (Perfil perfil : perfilCollection) { perfil.getUsuarioCollection(); perfil.setUsuarioCollection(null); } userAuthenticated.setPedidoVentaCollection(null); userAuthenticated.setMovimientoHistoricoProductoCollection(null); // userAuthenticated.setEstadoDeCuentaCollection(null); userAuthenticated.setPedidoVentaEstadoCollection(null); userAuthenticated.setMensajesParaPortalCollection(null); return userAuthenticated; } catch (NoResultException nre) { return null; } finally { em.close(); } }