Concatenação do Eclipse não funciona!

Alguém ja teve um problema similar??

Criei uma classe DAOFactory, e nesta classe existe uma variável UsuarioDAO fazendo referencia a classe UsuarioDAOHibernate, porém o eclipse nao reconhece os métodos concatenados na variável UsuarioDAO oriundos da UsuarioDAOHibernate. Parece ser um problema no próprio eclipse. Coloquei as imagens abaixo para ficar mais claro, alguem ja teve um problema similar???




[quote=vitolito]Alguém ja teve um problema similar??

Criei uma classe DAOFactory, e nesta classe existe uma variável UsuarioDAO fazendo referencia a classe UsuarioDAOHibernate, porém o eclipse nao reconhece os métodos concatenados na variável UsuarioDAO oriundos da UsuarioDAOHibernate. Parece ser um problema no próprio eclipse. Coloquei as imagens abaixo para ficar mais claro, alguem ja teve um problema similar???[/quote]

Métodos concatenados?

Você não pode chamar os métodos de UsuarioDaoHibernate no corpo da classe DaoFactory, você precisa colocar essa chamada dentro de um método, ai sim o eclipse vai completar pra você o nome dos métodos da classe UsuarioDaoHibernate.

Seguinte Wagner… dentro da classe UsuarioDAOHibernate está assim:

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

public class UsuarioDAOHibernate implements UsuarioDAO {
private Session session;
	
	
	public void setSession(Session session){
		this.session=session;
	}
	public void salvar(Usuario usuario) {
		this.session.save(usuario);
		// TODO Auto-generated method stub

	}

	@Override
	public void atualizar(Usuario usuario) {
		// TODO Auto-generated method stub
		this.session.update(usuario);
	}

	@Override
	public void excluir(Usuario usuario) {
		// TODO Auto-generated method stub
		this.session.delete(usuario);
		
	}

	@Override
	public Usuario carregar(Integer codigo) {
		// TODO Auto-generated method stub
		return (Usuario) this.session.get(Usuario.class, codigo);
	}

	@Override
	public Usuario buscarPor(String login) {
		String hql = "select u from Usuario u where u.login =: login";
		Query consulta = this.session.createQuery(hql);
		return (Usuario) consulta.uniqueResult();
	}

	@Override
	public List<Usuario> listar() {
		// TODO Auto-generated method stub
		return null;
	}

}

Ja na classe DAOFacoty está dessa forma:


import java.text.DateFormat;
import java.util.Date;

import financeiro.usuario.Usuario;
import financeiro.usuario.UsuarioDAOHibernate;

public class DAOFactory {
	
	UsuarioDAOHibernate usuarioDAO = new UsuarioDAOHibernate();
	usuarioDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
	return usuarioDAO;
}

Esta chamada do método setSession nao é reconhecida pelo eclipse, qualquer outro método que eu tente concatenar com UsuarioDAO nao funciona

É como se os métodos estivessem como private, porem estao como public

Vitolito,

Acho que você copiou a mesma classe 2 vezes na última mensagem, mas sem problema, estou olhando nas imagens que você anexou.

Na sua classe DAOFactory você está fazendo o seguinte:

public class DAOFactory {

   UsuarioDAOHibernate usuarioDao = new UsuarioDaoHibernate();
   usuarioDao. // Aqui você não pode fazer isso
}

O certo seria algo como:

public class DAOFactory {

   UsuarioDAOHibernate usuarioDao = new UsuarioDaoHibernate();

   public void algumMetodo(){
      usuarioDao.salvarUsuario(u); //perceba que por estar dentro de um metodo agora voce pode chamar os metodos de usuarioDao, e o eclipse vai fazer o autocomplete.
   }
}

[quote=wagne23]Vitolito,

Acho que você copiou a mesma classe 2 vezes na última mensagem, mas sem problema, estou olhando nas imagens que você anexou.

Na sua classe DAOFactory você está fazendo o seguinte:

public class DAOFactory {

   UsuarioDAOHibernate usuarioDao = new UsuarioDaoHibernate();
   usuarioDao. // Aqui você não pode fazer isso
}

O certo seria algo como:

public class DAOFactory {

   UsuarioDAOHibernate usuarioDao = new UsuarioDaoHibernate();

   public void algumMetodo(){
      usuarioDao.salvarUsuario(u); //perceba que por estar dentro de um metodo agora voce pode chamar os metodos de usuarioDao, e o eclipse vai fazer o autocomplete.
   }
}

[/quote]

Entendido Wagne, havia me esquecido deste detalhe…rsrsrs, valeu