<bag> excluir linha da lista

19 views
Skip to first unread message

Eric Martins

unread,
Mar 24, 2014, 1:11:00 PM3/24/14
to nhiber...@googlegroups.com, eric.m...@mxm.com.br
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;
                }
            }
        }

Edno Silva

unread,
Mar 28, 2014, 10:05:27 PM3/28/14
to nhiber...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages