[RESOLVIDO] ManyToOne FK também é PK

Boa tarde pessoal, estive pesquisando e não achei uma solução ainda:

Tenho uma classe de pedido e outra de pedido_item.
Na classe Pedido, tenho uma PK chamada de idPedido.

Como posso fazer para que a FK na classe Pedido_Item tambem seje minha PK?

Obs: Relacionamento é ManyToOne, pois um pedido tem varios itens…

Obrigado

Cara, vc esta usando o Netbeans ??

Olá

Estou utilizando eclipse + hibernate + JSF

Costumo fazer o seguinte, crio as chaves primaria das tabelas e as forenkey no banco de dados e depois eu importo no netbeans…funciona a mesma coisa para o eclipse…

O que é esse “importo”? engenharia reversa?

um relacionamento @ManyToOne também pode ser anotado com @Id sem problema. já tentou fazer isso do lado do Item?

Na verdade isso não tentei fazer.

Vou implementar e aviso qualquer coisa.

Muito Obrigado

Funcionou perfeitamente…

Outra duvida, o que exatamente o @PrimaryKeyJoinColumn faz?

A anotação @PrimaryKeyJoinColumn está relacionada com herança entre entidades.

Vamos supor que você tem uma entidade Pessoa e sua PK é o atributo idPessoa[code]@Entity
@Table(name = “PESSOA”)
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorValue(“P”)
public class Pessoa{

@Id
private long idPessoa;

}[/code]E uma entidade estende de Pessoa, como PessoaFisica.

Você usa o PrimaryKeyJoinColumn para dizer qual atributo da classe filha que contém o valor da PK, caso nenhum seja especificado, é deduzido que o nome do atributo é o mesmo da classe pai, mas pra ficar o exemplo, vamos dizer que o nome é idPessoaFisica, aí ficaria assim:[code]@Entity
@Table(name = “PESSOAFISICA”)
@DiscriminatorValue(“PF”)
@PrimaryKeyJoinColumn(name = “idPessoaFisica”)
public class PessoaFisica extends Pessoa{

@Id
private long idPessoaFisica;

}[/code]Entendeu?

Entendi sim.

Muito obrigado.

Estive procurando na net, algum manual das anotações que o hibernate tem,
por acaso tu não saberia se existe algum site que descreva essas anotações?

Bom, a própria API me ajuda bastante :slight_smile: No seu caso a explicação está toda lá, só que em inglês

http://docs.oracle.com/javaee/6/api/javax/persistence/PrimaryKeyJoinColumn.html

Sem problemas,

Resolvido então.

Muito obrigado