Estou fazendo o exemplo de hibernate da apostila caelum mais não estou conseguindo gravar no banco.
Eu executo minha classe ele me retorna o codigo inserido mais vou olhar no banco não está lá os dados que inseri.
Meu código é esse
publicclassAdicionaProduto{publicstaticvoidmain(String[]args){Sessionsession=newHibernateFactory().getSession();Produtop=newProduto();p.setNome("Nome aqui");p.setDescricao("Descrição aqui");p.setPreco(100.50);session.save(p);System.out.println("ID do produto: "+p.getId());session.close();}
No seu hibernate.properties, coloque a linha abaixo e veja se resolve:
hibernate.connection.autocommit true
Rafael
mateusprado
diogo, vc tem que criar uma transação e dar um commit.
//importsimportorg.hibernate.Transaction;publicstaticvoidmain(String[]args){Sessionsession=newHibernateFactory().getSession();Produtop=newProduto();p.setNome("Nome aqui");p.setDescricao("Descrição aqui");p.setPreco(100.50);Transactiont=session.beginTransaction();session.save(p);t.commit();System.out.println("Feito.");System.out.println("ID do produto: "+p.getId());session.close();}
tente ai.
diogoprosoft
Valeu, segui a dica do mateus e do rafael e deu certo
Eu gostaria de saber se ao inves de usar o save para gravar e update para alterar tem como usar um só para os dois?
rafaelglauber
session.saveOrUpdate(p);
diogoprosoft
eu tentei usar o SaveorUpdate, mais ao invés de alterar ele gravou novamente.
Tipo eu sei que devo passar algo como parametro para alterar em jdbc eu fazia um Update com um where para alterar na mesma linha
Como que faço isso no hibernate para que ele saiba se vou gravar ou alterar
meu codigo
publicclassAdicionaProduto{publicstaticvoidmain(String[]args)throwsException{Sessionsession=newHibernateFactory().getSession();Produtop=newProduto();p.setNome("Capacete");p.setDescricao("EBF7 Cores");p.setPreco(65.0);Transactiont=session.beginTransaction();session.saveOrUpdate(p);t.commit();System.out.println("Gravado com sucesso");System.out.println("ID do produto: "+p.getId());session.close();}}
mas realmente temos algumas limitações quanto a isso, por exemplo, para que ele salve você tem primeiro que “carrega-lo” no banco de dados não basta “setar” todas as propriedades igualmente a um objeto já persistido, ele só faz a mundaça de estado do objeto gravado dessa maneira, se não ele entenderá que a solicitação é para persistir um novo objeto com o estado igual a outro que já tem no banco de dados.
J
jmalaverri
Oi Pessoal!
Estou tentando fazer um mapeamento de uma tabela A que tem um auto-relacionamento many-to-many com uma associação B (B tem um atributo e possui chaves compostas). Porém a abordagem para o modelo físico é que essa associação vire uma Tabela B.
Eu estou utilizando Hibernate Anotations. Já li um bocado de tutoriais e vários foruns, mas não encontrei algo que me ajude a resolver esse quebracabeça.
Alguem de vcs me poderia dar um exemplo de como solucionar o auto-relacionamento no momento de fazer o mapeamento e além disso, como solucionar o fato das chaves compostas.