Relacionamento @ManyToMany com atributos do relacionamento

1 resposta
G

Pessoal,

Gostaria de saber qual é a forma correta de mapear um relacionamento ManyToMany que possua atributos do relacionamento. Por exemplo:

Tenho as seguintes tabelas :

PROMOCAO

  • ID_PROMOCAO (PK)
  • NOME
  • VALIDADE

ITENS

  • ID_ITEM (PK)
  • NOME
  • DESCRICAO

PROMOCAO_ITENS

  • ID_PROMOCAO (PK-FK)
  • ID_ITEM (PK-FK)
  • QUANTIDADE

Se alguém puder ajudar, agradeço.

1 Resposta

W

Gustavo como vc tem um atributo na sua tabela de relacionamento vc é obrigado a ter uma classe do relacionamento

vc deve referenciar os relacionamento deste modo:

@EmbeddedId
        protected PromocaoItensPk  promocaoItenspk;

	@JoinColumn(name = "ID_PROMOCAO", referencedColumnName = "ID_PROMOCAO", insertable = false, updatable = false),
	@ManyToOne
	private Promocao promocao;

        @JoinColumn(name = "ID_ITEM", referencedColumnName = "ID_ITEM", insertable = false, updatable = false)
        @ManyToOne
        private Itens  itens

aí como vc tem uma chave primaria composta vai ter que ter um classe como chave contendo as duas chaves

tipo exemplo:

@Embeddable
public class PromocaoItensPk  implements Serializable {

    private static final long serialVersionUID = 1L;
    @Column(name = "ID_PROMOCAO", nullable = false)
    private Integer idPromocao;
    @Column(name = "ID_ITEM", nullable = false)
    private Integer idItem;

blz.

Criado 13 de fevereiro de 2009
Ultima resposta 13 de fev. de 2009
Respostas 1
Participantes 2