Fala pessoal tenho duas entidades uma pai e a outra filho, mapeadas normalmente com um
{
.
.
@OneToMany(mappedBy = "area", fetch=FetchType.LAZY, cascade= CascadeType.ALL)
.
.
}
e
{
.
.
.
@JoinColumn(name = "AREA", referencedColumnName = "IDAREA")
@ManyToOne(optional = false, cascade= CascadeType.ALL)
.
.
.
}
Os cascade na hora de Deletar estão perfeitos, ao deletar o pai os filhos vão juntos.
Mas eu estava pensando em uma coisa mais simples, ao deletar o pai retornar um erro dizendo que não pode fazer pq ainda tem os filhos
Retirei o Cascade, deixei apenas no Save e Update, deixei Detached e nada
O Hibernate sempre faz o delete só que nestes casos ele deixa o registro lá, órfão.
Me pergunto se existe uma mensagem para isto ou eu terei que fazer na mão com um criteria e depois verificar se o registro ainda tem filhos para dar a mensagem?
Agradeço muito a ajuda
Fala lmmoreira,
O seu processo que faz o Delete o objetos estão devidamente settado?
Pai com o Filho e o Filho com o Pai?
Pai pai = new Pai();
Filho filho = new Filho();
pai.setFilho(filho);
filho.setPai(Pai);
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
session.remove(pai);
session.flush;
transaction.commit();
Exemplo.
vlw

Opa
Cara valeu mesmo a ajuda, mas agoar descobri que o que estava errado era a forma que eu fazia conexao com o Hibernate
Se nao colocar org.hibernate.dialect.MySQL5InnoDBDialect no dialeto ele não passa para InnoDB
E ai nao tem relacionamentos
[quote=lmmoreira]Opa
Cara valeu mesmo a ajuda, mas agoar descobri que o que estava errado era a forma que eu fazia conexao com o Hibernate
Se nao colocar org.hibernate.dialect.MySQL5InnoDBDialect no dialeto ele não passa para InnoDB
E ai nao tem relacionamentos
[/quote]
blz meu veio… coloca com Resolvido no campo Assunto.
fui