Mapeamento Chave Composta

2 respostas
P

Caros Colegas.

Estou com o seguinte problema:

Tenho as segiuntes classes:

public class Grupo implements BaseEntity {

@EmbeddedId
private GrupoPK grupoPk;

@Id
@Column(name="gru_codigo")
private Integer codigo;

@Column(name="gru_nome")
private String nome;

@ManyToOne
@JoinColumn(name="fk_natureza_despesa")
private NaturezaDespesa naturezaDepesa;

============================================

@Embeddable
public class GrupoPK implements Serializable {

private static final long serialVersionUID = 1L;

private Integer codigo;

private NaturezaDespesa naturezaDespesa;

=============================================

public class SubGrupo implements BaseEntity {

@EmbeddedId
private SubGrupoPK subGrupoPk;

@Id
@Column(name="sub_codigo")
private Integer codigo;

@Column(name="sub_nome")
private String nome;

@ManyToOne
@JoinColumn(name="fk_subitem")
private Grupo grupo;

===============================================

@Embeddable
public class SubGrupoPK implements Serializable {

private static final long serialVersionUID = 1L;

private Integer codigo;

private Grupo grupo;

===============================================

Quando tento executar, me aparece a seguinte mensagem:

A Foreign key refering br.gadin.adm.entity.Grupo from br.gadin.adm.entity.SubGrupo has the wrong number of column. should be 3

Alguém sabe o que está errado?

2 Respostas

P

da uma olhada

http://www.guj.com.br/java/235340-mapeamento-duas-uk-na-mesma-tabela-hibernate-resolvido

Mr.style

Acho que ficou meio confuso isso aki

@EmbeddedId
private GrupoPK grupoPk;

@Id
@Column(name="gru_codigo")
private Integer codigo;

Pois se você está usando uma chave composta,
não tem lógica criar este campo id.

Verifique isso que está errado.

Criado 10 de março de 2011
Ultima resposta 17 de mar. de 2011
Respostas 2
Participantes 3