I guess if you annotate class as @Embeddable you don't need to annotate field as @Embedded. Also, if you annotate class as @Embeddable and you want to use it as primary key, you can use @Id only, but if it is not annotated as @Embeddable, you have to use @EmbeddedId on field to work as primary key.