Chave composta - Duas anotações @Id

4 respostas
igor_ks

Qual a diferenca de fazer a utilização de chaves composta com @EmbbededId , @IdClass e 2 @Ids?

fiz um exemplo assim:

@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long id;
	
	@Id
	private String logradouro;

e funcionou.. alguem sabe se pode usar 2 @Ids? Qual a vantagem e desvantagem de cada?

4 Respostas

Hebert_Coelho

@Id apenas é para id simples, um int or exemplo.

Os outros são para classes compostas. Aqui você pode ver cada um aplicado e explicado: JPA: Mini Livro - Primeiros passos e conceitos detalhados.

igor_ks

Sim, mas coloquei dois @Id e funcionou como chave composta, deixei até para criar automaticamente as tabelas pra ver oq ele fazia, e ele criou os dois campos como chave composta. Não deveria dar algum erro, falando que precisa da anotação @IdClass ou algo do tipo?

Achei estranho pq ele simplesmente funcionou

Hebert_Coelho

igor_ks:
Sim, mas coloquei dois @Id e funcionou como chave composta, deixei até para criar automaticamente as tabelas pra ver oq ele fazia, e ele criou os dois campos como chave composta. Não deveria dar algum erro, falando que precisa da anotação @IdClass ou algo do tipo?
Creio que isso varia da implementação viu. Tem cada macumba que elas fazem… O.o

hmsilva

Cara,

Este link pode esclarecer algumas dúvidas.

http://en.wikibooks.org/wiki/Java_Persistence/Embeddables

Criado 26 de novembro de 2012
Ultima resposta 26 de nov. de 2012
Respostas 4
Participantes 3