Bom estou fazendo uma integração com um sistema de um cliente, o pessoal responsável pelo ouro sistema me passou uma tabela onde eu irei inserir os dados, após a inserção dos dados irei executar uma procedure que eles criaram, no banco que irá validar os dados da tabela, e irá fazer o insert nas tabelas onde os dados realmente serão inseridos.
Qualquer mudança nesse banco está fora de cogitação, por pertencer totalmente ao outro sistema.
Trata-se de um lançamento financeiro, segue abaixo os campos dessa tabela.
DT_MOVIMENTO(NOT NULL DATE) - Data do Movimento do Sistema de Tesouraria
DT_REFERENCIA(NOT NULL DATE) - Data de Referencia do Lançamento ( D0/ D-1)
TP_MOVIMENTO(NOT NULL CHAR(01)) - Tipo de Movimento((‘C’ – Clientes)(‘P’ – Pagamento/Recebimento))
IN_LIQUIDANTE(NOT NULL CHAR(01)) - Lançto p/liquidação de Liquidante ( ‘S’/‘N’ )
CD_CLIENTE(NUMBER(7)) - Código do Cliente s/digito
CD_PAGREC(NUMBER(7)) - Código do Contas a Pagar
CD_CPFCGC(NUMBER(15)) - Código do CPFCGC do Fornecedor
VL_LANCAMENTO(NOT NULL NUMBER(15,2)) - Valor do Lançamento com sinal
CD_GRUCOM_LIQ(NOT NULL NUMBER(2)) - Grupo de Compensação de Liquidação
DS_HISTORICO(VARCHAR2(50)) - Descrição do histórico de liquidação
CD_BANCO(VARCHAR2(3)) - Código do Banco para liquidação na corretora
CD_AGENCIA (VARCHAR2(5)) - Código da Agencia para liquidação na corretora
NR_CONTA(NUMBER(13)) - Numero da Conta para liquidação na corretora
CD_BANCO_CLI(VARCHAR2(3)) - Código do Banco para liquidação do cliente
CD_AGENCIA_CLI(VARCHAR2(5)) - Código da Agencia para liquidação do cliente
DV_AGENCIA_CLI(VARCHAR2(2)) - Digito da Agencia para liquidação do cliente
NR_CONTA_CLI(VARCHAR2(13)) - Numero da Conta para liquidação do cliente
DV_CONTA_CLI(VARCHAR2(2)) - Digito da Conta para liquidação do cliente
TP_CONTA_CLI(VARCHAR2(3)) - Tipo de conta do Cliente((‘CC’ – Contas Corrente)(‘CP’ – Conta Poupança)(‘CI’ – Conta de Investimento))
IN_INTEGRADO(NOT NULL CHAR(01)) - Indicador de lçto incorporado no Tesouraria.
Como podem ver a tabela não possui PK.
Essa é uma tabela isolada e não se relaciona com ninguém, por isso não possui FKs.
Pensei em criar uma chave composta, mas campos relacionados ao cliente eu não posso utilizar, pois pode haver mais de um lançamento para o mesmo cliente, e esse movimento pode ser do mesmo tipo.
(se alguém tiver alguma sugestão de chave composta, me serve também)
O campo IN_INTEGRADO diz respeito a se aquele lançamento ja foi validado e inserido pela procedure do banco, se ja foi eu posso descartar esse lançamento(não sei se essa informação é util de alguma forma)
Minha dúvida é como posso persistir essa tabela com hibernate?
Eu posso criar uma conexão na unha para realizar os inserts, mas gostaria de evitar essa opção, mas se não tiver outra maneira…
Um abraço galera