Hibernate Annotations + PK Composta + FK = Erro [Resolvido]

1 resposta
D

Olá galera, estou começando com o Hibernate Annotations e estou com um problema em criar uma chave composta entre as seguintes tabelas e classes:

Tabelas:

------------------
 Cidade
 ------------------
 (pk) nome text
 (pk)(fk) uf text
 ------------------

Cidade.uf é um foreing key de UF.sigla

------------------
 UF
 ------------------
 (pk) sigla text
 nome text
 ------------------

Nas Classes tenho o seguinte:

@Entity
 public class Cidade{
   @Id
   private String nome;
   @ManyToOne(fetch = FetchType.EAGER)
   @JoinColumn(name = "uf", insertable = true, updatable = true)
   @Fetch(FetchMode.JOIN)
   @Cascade(CascadeType.SAVE_UPDATE)
   private UF uf;
 }
@Entity
 public class UF {
   @Id
   private String nome;
   @OneToMany(mappedBy="uf", fetch=FetchType.LAZY)
   @Cascade(CascadeType.ALL)
   public List<Cidade> cidades;
 }

Refrescando a cuca...
Minha classe Cidade tem uma associaçao many-to-one com UF
e na tabela cidade tem a column uf text.
Primary Key(nome,uf);

Ele não está conseguinte pegar o conteúdo de cidade.uf.sigla e salvar em cidade.uf

Ocorre o seguinte erro:

SEVERE: ERROR: null value in column "uf" violates not-null constraint

1 Resposta

D

O erro estava no @Id

@Entity public class UF { @Id private String sigla private String nome; @OneToMany(mappedBy="uf", fetch=FetchType.LAZY) @Cascade(CascadeType.ALL) public List<Cidade> cidades; }

Criado 7 de julho de 2007
Ultima resposta 7 de jul. de 2007
Respostas 1
Participantes 1