Re: [pgbr-geral] Uma coluna, duas FKs

2012-03-06 Por tôpico Bruno Silva
Certo, te respondo mais tarde!

Bruno E. A. Silva.
Analista de Sistemas.
Bacharel em Sistemas de Informação
Pós-graduando em Gerência de Projetos
Certified Scrum Master
LPIC-1
SCJP, SE 6
Novell CLA / DCTS ECR
DBA Postgres
---
“A caixa dizia: Requer MS Windows ou superior. Então instalei Linux.” -
Sábio Desconhecido
"Alguns prestam serviço/consultoria de Qualidade, os outros vendem licença!"



2012/3/6 Tiago Adami 

> Em 6 de março de 2012 11:01, Bruno Silva  escreveu:
> > Olha só, em defesa do Hibernate, o teu arquiteto está embananado.
> >
>
> Certo, então, poderias dizer como fazer para solucionar a questão?
>
> Seria de grande ajuda, pois não teria que modificar no modelo. Eu não
> tenho a mensagem de erro aqui agora pois não estou na empresa, mas se
> você copiar o código SQL que fiz no início conseguirá reproduzí-lo sem
> dificuldades.
>
>
>
> --
> 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


Re: [pgbr-geral] Uma coluna, duas FKs

2012-03-06 Por tôpico Tiago Adami
Em 6 de março de 2012 11:01, Bruno Silva  escreveu:
> Olha só, em defesa do Hibernate, o teu arquiteto está embananado.
>

Certo, então, poderias dizer como fazer para solucionar a questão?

Seria de grande ajuda, pois não teria que modificar no modelo. Eu não
tenho a mensagem de erro aqui agora pois não estou na empresa, mas se
você copiar o código SQL que fiz no início conseguirá reproduzí-lo sem
dificuldades.



-- 
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


Re: [pgbr-geral] Uma coluna, duas FKs

2012-03-06 Por tôpico Bruno Silva
Olha só, em defesa do Hibernate, o teu arquiteto está embananado.

Bruno E. A. Silva.
Analista de Sistemas.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Uma coluna, duas FKs

2012-03-06 Por tôpico Tiago Adami
Em 5 de março de 2012 20:20, Flavio Henrique Araque Gurgel
 escreveu:
> Qual é a versão do Hibernate?
> Ele está usando o dialeto PostgreSQL?
> Como estão os xmls do mapeamento dos objetos com o banco de dados?

* Hibernate 4.0.1
* PostgreSQL Dialect
* Não usa XML, mas Annotations.

Agradeço o esforço de todos, mas realmente é um erro de ferramenta.
Acontece com outros SGBDs também (convertemos o modelo para outro SGBD
e o mesmo erro foi apresentado).

Para ficar claro, não que eu tenha duvidado do PostgreSQL, era mais
uma dúvida de projeto mesmo. Pensei que pudesse estar errado no
conceito de usar uma coluna e mais de uma FK nela.

Obrigado!

-- 
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


Re: [pgbr-geral] Uma coluna, duas FKs

2012-03-05 Por tôpico Leandro Guimarães Faria Corce DUTRA
Le 2012-M-5  19h51, Tiago Adami a écrit :
>
> "hibernate está aí a mais de 10 anos e muitas empresas
> grandes usam e..."

O que quer dizer exatamente o quê?  Os vírus estão conosco há muito mais 
tempo.



-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Uma coluna, duas FKs

2012-03-05 Por tôpico Flavio Henrique Araque Gurgel
> De operação não sei, pois não conheço a ferramenta. Mas eu mesmo
> verifiquei a mensagem de erro: simplesmente diz que "não pode usar uma
> mesma coluna em dois relacionamentos ManyToOne" (ou algo assim). Por
> isso pensei que eu pudesse estar fazendo algo errado. Como diz o
> arquiteto, "hibernate está aí a mais de 10 anos e muitas empresas
> grandes usam e..."

Qual é a versão do Hibernate?
Ele está usando o dialeto PostgreSQL?
Como estão os xmls do mapeamento dos objetos com o banco de dados?

[]s
Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Uma coluna, duas FKs

2012-03-05 Por tôpico Tiago Adami
Em 5 de março de 2012 18:55, Guimarães Faria Corcete DUTRA, Leandro
 escreveu:
> O Hibernate realmente é fraco demais — mas a coisa é tão absurda que
> será que não é um erro de operação do Hibernate?
>

De operação não sei, pois não conheço a ferramenta. Mas eu mesmo
verifiquei a mensagem de erro: simplesmente diz que "não pode usar uma
mesma coluna em dois relacionamentos ManyToOne" (ou algo assim). Por
isso pensei que eu pudesse estar fazendo algo errado. Como diz o
arquiteto, "hibernate está aí a mais de 10 anos e muitas empresas
grandes usam e..."


-- 
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


Re: [pgbr-geral] Uma coluna, duas FKs

2012-03-05 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2012/3/5 Tiago Adami :
>
> Então eu peço a vocês... posso mesmo dizer que o Hibernate é fraco
> demais, ou altero o modelo?

O Hibernate realmente é fraco demais — mas a coisa é tão absurda que
será que não é um erro de operação do Hibernate?

Com um arquiteto assim, a casa cai…
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Uma coluna, duas FKs

2012-03-05 Por tôpico Tiago Adami
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