Слишком поздно для этого ответа, но на случай, если он поможет.
Я сослался на hibernate docs Ссылка на Hiberate 3.5 , в которой есть разница, что с @EmbeddedId
вы можете пропустить аннотирование класса сущности @Embeddable
, но с @Id
это необходимо.
Я пытался использовать @Id
без @Embeddable
, это дает исключение:
org.hibernate.mapping.SimpleValue нельзя преобразовать в org.hibernate.mapping.Component
Только это и никакой дополнительной информации, такой как имя поля или класса.
Ну, это поведение как в Hibernate 4; Я не знаю о других провайдерах JPA. Я протестирую несколько и обновлю сообщение соответственно, если будут какие-либо еще выводы.
Надеюсь, это кому-нибудь поможет!