Olá,
li a apostila da Caelum FJ-21 o capítulo de Hibernate e segui aquele exemplo da classe Produto.
Só que ainda tem uma dúvida: para deletar um registro do banco não é só usar delete(produto); ?
(Sendo produto um objeto da classe mapeada - Produto)
Eu faço isso mas não deleta nada. Já tentei usar o método commit() de Transaction mas nada acontece também.
PS: Uso mySQL, configurei tudo certo, tanto que o método save() funciona perfeitamente.
Grato.
[quote=Metallica]Olá,
li a apostila da Caelum FJ-21 o capítulo de Hibernate e segui aquele exemplo da classe Produto.
Só que ainda tem uma dúvida: para deletar um registro do banco não é só usar delete(produto); ?
(Sendo produto um objeto da classe mapeada - Produto)
Eu faço isso mas não deleta nada. Já tentei usar o método commit() de Transaction mas nada acontece também.
PS: Uso mySQL, configurei tudo certo, tanto que o método save() funciona perfeitamente.
Grato.[/quote]
Boa tarde, você está passando o id do registro que deseja excluir?
posta o erro pra gente dar uma olhada…
ops ressusitei sem quere kkkkkkkkk eskeçe…
foi mal!
[quote=luanibarra][quote=Metallica]Olá,
li a apostila da Caelum FJ-21 o capítulo de Hibernate e segui aquele exemplo da classe Produto.
Só que ainda tem uma dúvida: para deletar um registro do banco não é só usar delete(produto); ?
(Sendo produto um objeto da classe mapeada - Produto)
Eu faço isso mas não deleta nada. Já tentei usar o método commit() de Transaction mas nada acontece também.
PS: Uso mySQL, configurei tudo certo, tanto que o método save() funciona perfeitamente.
Grato.[/quote]
Boa tarde, você está passando o id do registro que deseja excluir?
posta o erro pra gente dar uma olhada…
[/quote]
Boa tarde luanibarra, o tópico é novo, não é ressucitar não.
Eu estou deletando (tentando) pelo método delete(), que como parâmetro recebe um objeto.
O problema é que não tá dando erro algum, ele simplesmente não deleta e não exibe nada (mesmo cercando com try-catch e imprimindo a stack-trace).
É um método da interface Session do pacote org.hibernate
[code]void delete(Object object)
throws HibernateException
Remove a persistent instance from the datastore. The argument may be an instance associated with the receiving Session or a transient instance with an identifier associated with existing persistent state. This operation cascades to associated instances if the association is mapped with cascade="delete".[/code]
ops intao ta …
posta o fonte para eu dar uma olhada…
vc trouce o objeto que deseja deletar para o estado persistent antes de chamar o delete?
Opa, aqui está:
ProdutoDao tem os métodos que o Hibernate usa.
TestaDao executa os métodos em si.
[code]public class ProdutoDao {
private Session session;
public ProdutoDao(Session session) {
this.session = session;
}
public void deleta(Produto p){
this.session.delete(p);
}
public Produto consulta(Long id){
return (Produto) this.session.load(Produto.class, id);
}
//outros métodos
}[/code]
[code]public class TestaDao {
public static void main(String[] args) {
Session session = new HibernateFactory().getSession();
ProdutoDao dao = new ProdutoDao(session);
Produto produto = (Produto)dao.consulta(new Long(1));
//O produto com ID 1 existe e tem todos os campos preenchidos na tabela
dao.deleta(produto);
}
}
[/code]
Consegui!
Precisava de um objeto Transaction e do método commit() :
[code] public void deleta(Produto p){
Transaction t = this.session.beginTransaction();
t.begin();
this.session.delete(p);
t.commit();
}
[/code]