Boa tarde! Estou usando o PostgreSQL 8.3 em um projeto - legado - que irá usar Hibernate (eca!). Infelizmente não posso mudar isso pois é decisão do arquiteto de software.
E infelizmente, o Hibernate não está aceitando o modelo que fiz de banco. E o arquiteto de software está dizendo que o erro é do PostgreSQL que permite a implementação de tal modelo (!). Isso é inválido, uma vez que já testei em Sybase e DB2 e também não tive problemas. Mas para ganhar a discussão, gostaria de uma segunda opinião quanto ao caso. As tabelas são muito próximas disso: CREATE TABLE COTACAO_ITEM( NUMCOTACAO INTEGER NOT NULL, CODBARITEM CHAR(13) NOT NULL ); ALTER TABLE COTACAO_ITEM ADD PRIMARY KEY( NUMCOTACAO, CODBARITEM ); CREATE TABLE COTACAO_PARTICIPANTE( NUMCOTACAO INTEGER NOT NULL, CNPJFORN CHAR(14) NOT NULL ); ALTER TABLE COTACAO_PARTICIPANTE ADD PRIMARY KEY( NUMCOTACAO, CNPJFORN ); CREATE TABLE COTACAO_ITEM_RETORNO( NUMCOTACAO INTEGER NOT NULL, CNPJFORN CHAR(14) NOT NULL, CODBARITEM CHAR(13) NOT NULL, PRECO NUMERIC(15,2) NOT NULL ); ALTER TABLE COTACAO_ITEM_RETORNO ADD PRIMARY KEY( NUMCOTACAO, CNPJFORN, CODBARITEM ); ALTER TABLE COTACAO_ITEM_RETORNO ADD CONSTRAINT FK_ITEM FOREIGN KEY ( NUMCOTACAO, CODBARITEM ) REFERENCES COTACAO_ITEM( NUMCOTACAO, CODBARITEM ); ALTER TABLE COTACAO_ITEM_RETORNO ADD CONSTRAINT FK_PARTICIPANTE FOREIGN KEY ( NUMCOTACAO, CNPJFORN ) REFERENCES COTACAO_PARTICIPANTE( NUMCOTACAO, CNPJFORN ); A explicação é a seguinte: - Uma cotação tem um único número (é uma chave natural neste caso pois cada cotação precisa ter um número, mesmo que gerado pelo banco). - Uma cotação possui vários itens (COTACAO_ITEM); - Uma cotação possui vários fornecedores participantes (COTACAO_PARTICIPANTE); - Para cada combinação de item e fornecedor, deve haver apenas um preço (COTACAO_ITEM_RETORNO); Então... em banco de dados tudo corre da mandeira mais perfeita possível, pois a coluna COTACAO_ITEM_RETORNO.NUMCOTACAO possui relação com 2 FKs, uma para a tabela COTACAO_ITEM e outra para COTACAO_PARTICIPANTE. Mas o Hibernate não permite fazer relacionamento de uma mesma coluna com duas FK's... Então eu peço a vocês... posso mesmo dizer que o Hibernate é fraco demais, ou altero o modelo? -- TIAGO J. ADAMI http://www.adamiworks.com _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral