Pessoal,
Tenho os seguintes mapeamentos no hibernate:
Mapeamento para Cliente.
<class name="br.com.callink.model.pojo.impl.Cliente" table="tb_cliente">
<id name="id" type="int" column="id_cliente">
<generator class="native"/>
</id>
<property name="nome" type="string" column="nome_cliente" not-null="true"/>
<property name="razaoSocial" type="string" column="razao_social_cliente"/>
<property name="cpf" type="string" column="cpf_cliente" />
<property name="sexo" type="string" column="sexo_cliente" />
<property name="dataNascimento" type="date" column="data_nascimento_cliente" />
<set name="telefones" cascade="all,delete-orphan" lazy="false">
<key column="id_cliente"/>
<one-to-many class="br.com.callink.model.pojo.impl.Telefone"/>
</set>
<set name="enderecos" cascade="all" inverse="true">
<key column="id_cliente"/>
<one-to-many class="br.com.callink.model.pojo.impl.Endereco"/>
</set>
</class>
Mapeamento para telefone
<class name="br.com.callink.model.pojo.impl.Telefone" table="tb_telefone">
<id name="id" type="int" column="id_telefone">
<generator class="native"/>
</id>
<property name="numero" type="string" column="numero_telefone" not-null="true"/>
<property name="ramal" type="string" column="ramal_telefone" />
<many-to-one name="tipoTelefone" class="br.com.callink.model.pojo.impl.TipoTelefone"
column="id_tipo_telefone" cascade="none" not-null="true" lazy="false"/>
<many-to-one name="cliente" class="br.com.callink.model.pojo.impl.Cliente"
column="id_cliente" cascade="none" not-null="true"/>
<many-to-one name="ddd" class="br.com.callink.model.pojo.impl.DDD"
column="id_ddd" cascade="none" not-null="true" lazy="false"/>
</class>
Quero o seguinte comportamento: Ao alterar o cliente e remover algum telefone que esse seja apagado do banco.
Olhei na referência do Hibernate e vi que deveria mapear com delete-orphan, mas não está funcionando, pois ele tenta definir na tb_telefone o id_cliente como null, o que não funciona pois esse campo é not-null.
vi no log do hibernate que ele tenta executar o seguinte:
update
tb_telefone
set
id_cliente=null
where
id_cliente=?
Alguém sabe fazer isso funcionar??
até mais.