Automatic state detection Hibernate

Pessoal preciso da ajuda de vcs!!!

recebi uma ajuda em um post anterior, que faz com que eu possa gravar e alterar em um mesmo botão o codigo da apostila esta assim

// in the first session
Cat cat = (Cat) firstSession.load(Cat.class, catID);

// in a higher tier of the application
Cat mate = new Cat();
cat.setMate(mate);

// later, in a new session
secondSession.saveOrUpdate(cat);   // update existing state (cat has a non-null id)
secondSession.saveOrUpdate(mate);  // save the new instance (mate has a null id)

Mais não consegui implementar esse exemplo no meu código

[code]
public class AdicionaProduto {

 public static void main(String[] args) throws Exception {
    Session session = new HibernateFactory().getSession();
    Produto p = new Produto();    
    p.setNome("Capacete");
    p.setDescricao("EBF7 Cores");
    p.setPreco(65.0);

    Transaction t = session.beginTransaction();
    session.saveOrUpdate(p);
    t.commit();
    System.out.println("Gravado com sucesso");
    System.out.println("ID do produto: " + p.getId());
    session.close();
 }
[/code]

Preciso fazer com que eu possa digitar os dados e deixar para o hibernate saber se vai alterar ou gravar

ALGUEM PODE ME AJUDAR!!!

desde já agradeço :smiley:

Olha, as respostas para a sua dúvida estão no próprio trecho de código que vc postou!

// in the first session  
   Cat cat = (Cat) firstSession.load(Cat.class, catID);  

Segundo os comentários que você mesmo postou, o hibernate salva ou não dependendo do ID. E pra recuperar uma instância do banco COM ID tem a linha com o load.

Blz galera mais um post resolvido