Tenho uma tabela que esta mapeada no OJB(http://pt.wikipedia.org/wiki/OJB) 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.
[code]
<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>
[/code]
Aguardo um retorno…valw