Olá amigos!
Estou implementando uma aplicação na qual tenho registros que precisam necessariamente de eventos em cascata para manter a coesão da base de dados.
Exemplo:
Tenho a classe Agencia e a classe Conta. No XML da classe Agencia tenho o seguinte:
<set name="contas"
cascade="delete-orphan"
inverse="true">
<key column="agencia_id" on-delete="cascade"/>
<one-to-many class="Conta"/>
</set>
E no XML da classe Conta tenho:
<many-to-one
name="agencia"
column="agencia_id"
class="Agencia" />
Coloquei tanto o atributo “cascade=delete-orphan” como também na key o atributo “on-delete=cascade”. Estou usando uma base de dados MySQL InnoDB.
O que ocorre é que eu deleto a agencia (usando um session.delete(agencia) seguido de flush e commit) mas as contas relacionadas a ela não sofrem o efeito cascata e permanecem normalmente na base de dados!!
O que pode estar faltando??
Daniel Adornes
SCJP 5.0