Olá pessoa!
estou com dificuldade em excluir um item do detalhe, em uma lista mestre/detalhes.
tenho a entidade pessoa que possui uma lista de documentos.
Quando incluo ou altero um detalhe funciona corretamente, mas quando excluo um detalhe, não ocorre erro, mas a linha não é excluída.
não posso usar muitos para muitos, pois tenho uma propriedade no relacionamento.
----------------------------------- ENTIDADE PESSOA
public class Pessoa
{
public virtual Int32 Identificador { get; set; }
public virtual String Descricao { get; set; }
public virtual IList<RelacionamentoPessoaDocumento> RelacionamentoPessoaDocumento { get; set; }
}
<class name="Pessoa" table="PESSOA_TPP">
<id name="Identificador" column="TPP_IDENTIFICADOR" type="Int32">
<generator class="native" />
</id>
<property name="Descricao" column="TPP_DESCRICAO" type="String" length="50" />
<bag name="Detalhes" lazy="true" cascade="all" inverse="true">
<key column="RPD_PESSOA" />
<one-to-many class="Framework.Modelo.Entidade.RelacionamentoPessoaDocumento"/>
</bag>
</class>
</hibernate-mapping>
----------------------------------- ENTIDADE DOCUMENTO
public class Documento
{
public virtual Int32 Identificador { get; set; }
public virtual String Descricao { get; set; }
}
<class name="Documento" table="DOCUMENTO_TPD">
<id name="Identificador" column="TPD_IDENTIFICADOR" type="Int32">
<generator class="native" />
</id>
<property name="Descricao" column="TPD_DESCRICAO" type="String" length="50" />
</class>
</hibernate-mapping>
----------------------------------- ENTIDADE RELACIONAMENTO PESSOA / DOCUMENTO
public class RelacionamentoPessoaDocumento
{
public virtual Int32 Identificador { get; set; }
public virtual Int32 Pessoa { get; set; }
public virtual Int32 Documento { get; set; }
public virtual Boolean Obrigatorio { get; set; }
}
<class name="RelacionamentoPessoaDocumento" table="RELPESSOADOCUMENTO_RPD">
<id name="Identificador" column="RPD_IDENTIFICADOR" type="Int32">
<generator class="native" />
</id>
<many-to-one name="Pessoa" column="RPD_PESSOA" class="Framework.Modelo.Entidade.Pessoa" not-null="true" />
<many-to-one name="Documento" column="RPD_DOCUMENTO" class="Framework.Modelo.Entidade.Documento" not-null="true" />
<property name="Obrigatorio" column="RPD_OBRIGATORIO" type="Boolean" />
</class>
</hibernate-mapping>
----------------------------------- SALVAR DO REPOSITÓRIO ONDE <T> EU PASSO PESSOA
public void Salvar<T>(T entidade)
{
using (var session = GetSessao())
{
session.BeginTransaction();
try
{
AntesPersistir(entidade);
session.SaveOrUpdate(entidade);
DepoisPersistir(entidade);
session.Transaction.Commit();
}
catch
{
session.Transaction.Rollback();
throw;
}
}
}