Novo erro

Olá amigos,
estou com erro na minha classe DAO e na classe principal, mas nao estou sabendo resolver… alguem poderia me ajudar?

Classe DAO

[code]public class ClienteDAO {

private Session session;
public ClienteDAO(){
}
public void salvar(Cliente cli){
	session = HibernateUtil.getSessionFactory().getCurrentSession();
	session.beginTransaction();
	session.save(cli);
	session.getTransaction().commit();
}

public List listar(){
	session = HibernateUtil.getSessionFactory().openSession();
	session.beginTransaction();
	List l1 = session.createQuery("from Cliente").list();
	session.getTransaction().commit();
	return l1;
}

}[/code]

Erro na seguinte linha:

Erro em session.createQuery(“from Cliente”).list()

Classe Principal

[code]public class Principal {

public static void main(String[] args) {
	Cliente c1 = new Cliente();
	c1.setNome(" ");
	c1.setIdade(new Long(20));
	
	Cliente c2 = new Cliente();
	c2.setNome(" ");
	c2.setIdade(new Long(21));

	ClienteDAO clienteDAO = new ClienteDAO();
	clienteDAO.salvar(c1);
	clienteDAO.salvar(c2);
	
	List<Cliente> listaClientes = clienteDAO.listar();
	for (Cliente cliente : listaClientes) {
	System.out.println(cliente.getId()+" - "+cliente.getNome());
	}
			
}

}[/code]

Erro na seguinte linha:

Erro no List

Qual erro?

Esse é o erro:

[code]Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The type List is not generic; it cannot be parameterized with arguments

at teste.dao.Principal.main(Principal.java:25)

[/code]

vlw

http://www.guj.com.br/java.tutorial.artigo.142.1.guj

Vendo pouco do seu código eu diria:

Altere para:

Ou então ClienteDAO deve retornar:

No seu DAO, no public List listar(), coloque public List<Cliente> listar().

Outro detalhe que eu notei. Você está fazendo seu controle de transação dentro do DAO, certo? Mas e caso ocorra uma exceção, onde ela será tratada? Onde está o rollback? O ideal é deixar o controle de transação fora do DAO, em uma camada de serviço. (ou então pense na possibilidade de usar o Spring framework para te ajudar no controle de transação). Pesquise aqui no GUJ que isso já foi muito comentado.

Então amigos, quando eu faço a alteração como o fiaux explicou ele da o seguinte erro:

[code]Exception in thread “main” java.lang.Error: Unresolved compilation problem:
Can only iterate over an array or an instance of java.lang.Iterable

at teste.dao.Principal.main(Principal.java:26)[/code]

o erro é em listaClientes da seguinte linha:

Já quando aplico a dica do Jair da o seguinte erro:

[code]Exception in thread “main” java.lang.Error: Unresolved compilation problems:
The type List is not generic; it cannot be parameterized with arguments
The method listar() is undefined for the type ClienteDAO

at teste.dao.Principal.main(Principal.java:25)[/code]

e dessa forma continua com mesmo erro e da um erro na linha onde foi indicado para adicionar o .
; /

Qual versão de Java você usa?

eu uso Eclipse 3.3

Tudo bem que o Eclipse é o 3.3, mas e a versão do Java ??

Eu sou novato em Java :stuck_out_tongue_winking_eye:

SDK?

eh isso? :roll:

se não for, como eu posso ve? :frowning:

Isso, qual :?: :?:

SDK é a versão? :roll:

Vai no prompt ou no cmd e digita “java -version”

java version "1.6.0_05"
Java™ SE Runtime Environment (build 1.6.0_05-b13)

:wink: Vlw :smiley:

Alguem pode me ajudar com esse erro?