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^^
}