Como fazer Join HQL

2 respostas
colored

Bom to precisando criar um metodo pra retornar um email, de um colaborador porem na classe de um usuario… Tipo na classe usuario eu tenho um atributo Colaborador;

Eu pensei mais o menos assim…
Ai vai o meu Managed Bean

public class UsuarioFaces {
	
	private Usuario usuario;
	private GenericDAO<Usuario> dao;
	private List<Usuario> lista;
	private HttpSession session;
	

	public UsuarioFaces() {
		dao = new DAOFactory().getUsuarioDAO();
		lista = new ArrayList<Usuario>();
		session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
	}
	
	public String verificaUsuario(){   
		Map<String, Object> parametros = new HashMap<String, Object>();   
        parametros.put("log", usuario.getLogin());   
        parametros.put("pass", usuario.getSenha());   
        usuario =  dao.ObjetoPorCriterio("from Usuario u where u.login = :log and u.senha = :pass", parametros);
	        if(usuario != null){
	        	session.setAttribute("user", usuario.getLogin());
	        	return "loginOk";
	        }
	        	FacesUtil.messageError("Login Inválido, Tente Novamente");
	        	return "fail";
    }
// Aki está o Problema eu n consigo fazer isso funcionar
	public String verificaEmail(){
		Map<String, Object> parametros = new HashMap<String, Object>();   
        parametros.put("email", usuario.getColaborador().getEmail());
        usuario =  dao.ObjetoPorCriterio("from Usuario u where u.colaborador.email = :email", parametros);
        return (usuario != null) ? "emailOk" : "fail";
	}

Então esse meu Metodo Verificar Email() num funciona ele so retorna null… e da exception…

Alguem pode me ajudar com isso ja faz mto tempo q tenho esse erro e fico jogando pra frente mas agora ja era preciso conserta-lo kkkkkkk[

Obrigado

2 Respostas

colored

Pensei q tinha acertado mas num deu…

public String RecuperarSenha(){
		Map<String, Object> parametros = new HashMap<String, Object>(); 
		parametros.put("email", colaborador.getEmail());
		colaborador = new DAOFactory().getColaboradorDAO().ObjetoPorCriterio("from Colaborador c where c.email = :email", parametros);
			if(colaborador != null){
				Usuario u = new DAOFactory().getUsuarioDAO().procurarPorId(colaborador.getId());
				System.out.println(u.getLogin());
				return "";
			}
			return "";
	}

Eu pensei assim vo pesquisar esse email, se ele tiver eu tento associar esse Colaborador com o usuario para poder pegar o login e senha desse usuario…
mas n deu certo alguem tem alguma ideia?:???

colored

Será que um jeito mais pratico que isso. pq eu fiz mas ta meio embolado…

public void recuperarSenha(){
		Colaborador c = new Colaborador();
		Map<String, Object> parametros = new HashMap<String, Object>(); 
		parametros.put("email", c.getEmail());
		c = new DAOFactory().getColaboradorDAO().ObjetoPorCriterio("from Colaborador c where c.email = :email", parametros);
		System.out.println(c.getNome());
			if(c != null){
				System.out.println("Yes");
				Usuario u = new Usuario();
				u.setColaborador(c);
				System.out.println(u.getColaborador().getEmail());
				u = new DAOFactory().getUsuarioDAO().ObjetoPorCriterio("from Usuario u where u.colaborador.email = :email", parametros);
				System.out.println(u.getLogin());
				
			}
	}
Criado 29 de setembro de 2009
Ultima resposta 29 de set. de 2009
Respostas 2
Participantes 1