| Regarding your case As I know, Hibernate chooses access type depending on where `@Id` annotation is set in the entity class (field or setter/getter), and applies it to all remaining properties, including embedded. Thus if `@Id`/`@EmbeddedId` is applied to a field, Hibernate will collect metadata based on fields, not getters, and since `ProviderId` has no fields at all, no column for mapping will be found. |