[RESOLVIDO]Listagem com Hibernate

Bom dia.
Pessoal estou tentando listar todo o conteúdo de meu banco, e ao tentar executar o mesmo me da o seguinte erro

[code]Exception in thread “main” ****** Listando Tudo ******
java.lang.Error: Unresolved compilation problem:
Cannot use this in a static context

at br.com.dao.ProdutosDao.listaAll(ProdutosDao.java:34)
at br.com.testa.AdicionaProduto.main(AdicionaProduto.java:31)

[/code]

ProdutosDao

[code]package br.com.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.model.Produtos;
import br.com.util.HibernateUtil;

public class ProdutosDao {

private Session session;

public ProdutosDao(Session session){
	this.session = session;
	
}

public static List listaAll(){
return this.session.createCriteria(Produtos.class).list();
}
[/code]

main

package br.com.testa;

import org.hibernate.Session;

import br.com.dao.Dao;
import br.com.dao.ProdutosDao;
import br.com.model.Produtos;
import br.com.util.HibernateUtil;

public class AdicionaProduto{
	
	public static void main(String[] args) {
		
		Session session = new HibernateUtil().getSession();
		ProdutosDao dao = new ProdutosDao(session);
		
System.out.println("****** Listando Tudo ******");
			for(Produtos p : ProdutosDao.listaAll()){
				System.out.println(p.getNome());
		}
		
		
		
		
		
	}

}

ao retirar o “static” do método, me da erro no “for” de listagem… =/
Alguem sabe o que pode estar acontecendo?

fico no aguardo…!
Vlw

Cara vc tá this em um método static, este codigo nem compila, vc não pode usar static com referencias a atributos que não sejam static, remova o static do seu método e estude um pouco sobre static

Pois é meu caro, se eu estou postando minha dúvida aki no forum, é porque estudei e pesquisei porém não achei a solução, apesar de ser uma coisa bem simples.

mais alguem poderia postar algo util?

Flw fico no aguardo…

[quote=Ace]Pois é meu caro, se eu estou postando minha dúvida aki no forum, é porque estudei e pesquisei porém não achei a solução, apesar de ser uma coisa bem simples.

mais alguem poderia postar algo util?

Flw fico no aguardo…[/quote]

Okay, se vc estudou sabe que o static não pode ser usado com chamadas que não sejam static. portando tirando o static vc ira ter que alterar o seu loop for, já que o mesmo não é mais static, a partir da ai vc tem que usar o seu objeto chamado ‘dao’ no lugar do ‘ProdutosDao’…

o correto ficaria assim:

public class ProdutosDao{
//....
 public List<Produtos> listaAll(){  //Remova o static
         return this.session.createCriteria(Produtos.class).list();  
  }  
//...
   Session session = new HibernateUtil().getSession();  
         ProdutosDao dao = new ProdutosDao(session);  
           
 System.out.println("****** Listando Tudo ******");  
             for(Produtos p : dao.listaAll()){   //alterado AQUI antes vc ñ tava usando a variavel de nome dao
                 System.out.println(p.getNome());  
         }

Priuli,
Mto obrigado cara, por compartilhar seu conhecimento…
O problema foi resolvido.