@EmbeddedId x @IdClass

Olá amigos,
Eu estava lendo os itens 9.1.14 e 9.1.15 da spec persistence (JPA), onde é falado sobre o uso de @EmbeddedId e @IdClass. As situações citadas são muito parecidas (chaves compostas). Eu costumo usar @Embeddeble junto com @EmbeddedId. Me ficou a dúvida: em que situações usar @EmbeddedId ou @IdClass?
Gostaria de pedir aos colegas que evitassem divagações conceituais (ex. como usar). Gostaria apenas de saber quando usar um ou outro.

Abraço a todos

[]'s

Sávio Barros

Então Savio, ao meu ver, é mais uma questão de gosto. Pois a diferença é que com idClass o seu modelo fica mais “orientado a objetos”, já que as propriedades que estão em um classe separada (class pk) são declaradas novamente na entidade. O problema deste caso é que você fica com um modelo “duplicado”, ou seja, atributos iguais tanto na classe pk como na entidade. Mas parece mais sensato você acessar diretamente uma propriedade chave na entidade, por exemplo empregado.cpf, do que empregado.empregadopk.cpf.

Espero que tenha ficado claro.