OJB - Inserção de dados em tabelas filhas

0 respostas
rodsm

Tenho uma tabela que esta mapeada no OJB([url]http://pt.wikipedia.org/wiki/OJB[/url]) e esta tabela esta se relacionando
com mais 3 tabelas.
EX:
Tabela Mãe - PESSOA

Tabelas Filhas - DOCUMENTO fk
CONTATO fk
ENDERECO fk

O que acontece no sistema
Quando INSIRO na tabela mãe, as tabelas filhas recebem um novo registro também.
Quando ATUALIZO a tabela mãe, as tabelas filhas recebem um novo registro também.

Porém eu gostaria que ficasse assim:
Quando INSERIR na tabela mãe as filhas recebecem um novo registro (Isso ja esta fazendo)
Quando ATUALIZAR na tabela mãe somente inserisse registro na tabela filha CONTATO e as
outras ficassem sem receber inserção, pois já existem registros nelas, se caso for inserido algo nelas gerara erro de integridade.

Não sei se o OJB trata isso ou me da essa facilidade de falar qual filha quero que seja inserida ou atualizada.
Queria que na hora de atualizar a tabela PESSOA, fosse inserido somente registros na tabela CONTATO, porém ao inserir na TABELA pessoa fosse inserido registros
na tabela DOCUMENTO, CONTATO, ENDERECO.

<!-- PESSOA : INICIO -->
<class-descriptor proxy="dynamic"  table="PESSOA" 
                  class="br.com.xxx.ppart.pessoa.model.Pessoa">

    <field-descriptor name="id"               column="CD_PESSOA"      jdbc-type="BIGINT"
                      primarykey="true" autoincrement="true" sequence-name="SEQ_PESSOA" />
    <field-descriptor name="codigoTipoPessoa" column="CD_TIPO_PESSOA" jdbc-type="INTEGER" />
    <field-descriptor name="nome"             column="NM_PESSOA"      jdbc-type="VARCHAR" />
    <field-descriptor name="email"            column="DS_EMAIL"       jdbc-type="VARCHAR" />
    <field-descriptor name="ativo"            column="FG_ATIVO"       jdbc-type="INTEGER"
                      conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion" />
   
    //AQUI COMEÇA A PARTE DE REFERENCIAMENTO ENTRE AS TABELAS
    <reference-descriptor name="tipoPessoa"
                          class-ref="br.com.xxx.ppart.pessoa.model.TipoPessoa"
                          auto-update="none" auto-delete="none">
        <foreignkey field-ref="codigoTipoPessoa" />
    </reference-descriptor>
    <reference-descriptor name="parceiroNegocio"
                          class-ref="br.com.xxx.ppart.model.ParceiroNegocio"
                          auto-update="none" auto-delete="none">
        <foreignkey field-ref="id" />
    </reference-descriptor>
   
    <collection-descriptor name="documentos" orderby="codigoTipoDocumento"
                           element-class-ref="br.com.xxx.ppart.documento.model.Documento"
                           auto-update="true" auto-delete="none"> // AS TABELAS QUE SEMPRE SERÃO INSERIDAS TEM AUTO-UPDATE=TRUE, ou seja documento/contatos/enderecos
        <inverse-foreignkey field-ref="codigoPessoa" />
    </collection-descriptor>
    <collection-descriptor name="contatos" orderby="contato"
                           element-class-ref="br.com.xxx.ppart.contato.model.Contato"
                           auto-update="true" auto-delete="none">
        <inverse-foreignkey field-ref="codigoPessoa" />
    </collection-descriptor>
    <collection-descriptor name="enderecos" orderby="numeroImovel"
                           element-class-ref="br.com.xxx.ppart.endereco.model.Endereco"
                           auto-update="true" auto-delete="none">
        <inverse-foreignkey field-ref="codigoPessoa" />
    </collection-descriptor>
</class-descriptor>
<!-- PESSOA : FIM -->

Aguardo um retorno..valw

Criado 5 de março de 2009
Respostas 0
Participantes 1