Incompatibilidade de campos ao fazer deploy

Java

25/01/2011

Não entendi esse erro:


WARNING: Got SQLException executing statement "ALTER TABLE SELL ADD CONSTRAINT FK_SELL_CREDITCARD_ID FOREIGN KEY (CREDITCARD_ID) REFERENCES CREDITCARD (id)": org.postgresql.util.PSQLException: ERRO: restrição de chave estrangeira "fk_sell_creditcard_id" não pode ser implementada
  Detalhe: Colunas chave "creditcard_id" e "id" são de tipos incompatíveis: character varying e integer.

Minha anotação na classe Sell esta assim:

   @NotNull
    @JoinColumn(referencedColumnName="id")
    @ManyToOne(optional=false)
    @Valid
    private CreditCard creditCard;



Na classe CrediCard deste forma:

@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column
    @Basic(optional=false)
    private Integer id;

Por que a mensagem de tipo incompativel?

Nota: Estou trabalhando com o postgresql 9
Nilo Souza

Nilo Souza

Curtidas 0

Respostas

Robson Teixeira

Robson Teixeira

25/01/2011

Caro Nilo

  você esta usando o driver do postgres 9???
  e testa assim a annotation
  @JoinColumn(name="CreditCard_ID",referencedColumnName="id")

pois o atributo name serve para você poder colocar o nome que você deseja na tabela de sell.


GOSTEI 0
Robson Teixeira

Robson Teixeira

25/01/2011

Complementando

  Digo o driver pois pode ter alguma incompatibilidade com a versão do banco com o driver.

att
 robson
GOSTEI 0
Nilo Souza

Nilo Souza

25/01/2011

Robson, bom dia!
Instalei a versão 9 e o drive que uso é esse: postgresql-9.0-801.jdbc4.jar

Quando a coluna como ficaria então?
Parece que ele esta atribuindo automaticamente o valor da coluna creditcard_id o tipor character varying correto? Tem como fazer a atribuição manual para o tipo integer?


GOSTEI 0
Dyego Carmo

Dyego Carmo

25/01/2011

Os tipos dos DOIS lados estão corretos ?


GOSTEI 0
Nilo Souza

Nilo Souza

25/01/2011

Tá mais, como então resolver esse problema?  Não era para dar o erro citado acima.
GOSTEI 0
Nilo Souza

Nilo Souza

25/01/2011

no banco o tipo é integer e na hibernate coloquei conforme mostro acima, não sei pq esta dando esse erro. Segui suas video aulas!
GOSTEI 0
Nilo Souza

Nilo Souza

25/01/2011

no banco o tipo é integer e na hibernate coloquei conforme mostro acima, não sei pq esta dando esse erro. Segui suas video aulas!


No Banco de dados ao inves de salvar como Integer esta salvando como varchar(255).
GOSTEI 0
Dyego Carmo

Dyego Carmo

25/01/2011

Resolvido ? Feche a pendencia :)
GOSTEI 0
Nilo Souza

Nilo Souza

25/01/2011

Não Dyego, estou precisando de respostas. Vc é moderador ou não?
GOSTEI 0
Robson Teixeira

Robson Teixeira

25/01/2011

Olá Nilo
  Apague suas tabelas na mão e depois tenta de novo gerar as tabelas de novo pela aplicação e revise suas anotações nas entidades. ok??

att
  robson
GOSTEI 0
POSTAR