Problema pegar dados do banco [RESOLVIDO (Hibernate)]

Pessoal tenho algumas duvidas porque meu código grava mas quando tenta acessa da erro
estou usando MySQL com Hibernate Annotations
Eu não uso as classes DAO porque o Entity Manager já me ajuda com isso
The Code:

public class ProdutoMetodos { private Session session; public Set<Produto> allProdutos = new HashSet<Produto>(); public ProdutoMetodos (Session session) { this.session = session; } public void pegaProdutos(){ for (int i = 0; i < 2; i++) { Produto produtos = (Produto) session.load(Produto.class, i); allProdutos.add(produtos); } } public void mostraProdutos(){ for(Produto produto : allProdutos){ System.out.println(produto.getNome()); } } public void salva (Produto p) { this.session.save(p); } public void remove (Produto p) { this.session.delete(p); } public Produto procura (long i) { return (Produto) this.session.load(Produto.class, i); } public void atualiza (Produto p) { this.session.update(p); } @SuppressWarnings("unchecked") public List<Produto> listaTudo() { return this.session.createCriteria(Produto.class).list(); } public List listarProdutos() { List result = this.session.createQuery("from Produto").list(); this.session.flush(); this.session.close(); return result; } }
e minha classe teste esta assim:

public class AdicionaProduto { public static void main(String[] args) { Session session = new HibernateFactory().getSession(); Produto p = new Produto(); p.setNome("TV LCD"); p.setDescricao("42''"); p.setPreco(12000); session.save(p); System.out.println("ID do produto: " + p.getId()); session.close(); } }
E a classe Produto:

import javax.persistence.*; @Entity public class Produto { @Id @GeneratedValue private Long id; @Column(name = "nome", nullable = true, length = 50) private String nome; @Column(name = "descricao", nullable = true, length = 50) private String descricao; private Double preco; //Getters e Setters

E outra coisa como eu faço pra chamar metodos pelo main do meu programa sem o eclipse acusa de não ser Static?
O erro:

Exception in thread "main" java.lang.NullPointerException at dao.ProdutoMetodos.listaTudo(ProdutoMetodos.java:41) at Hibernate.AdicionaProduto.main(AdicionaProduto.java:14)
Quando passo um metodo dos Produtos pra static pra usa no main do Adiciona

Alguém saberia qual a solução??
Obrigado^^
}