Java itself has no concept of composition—a class or attribute can’t be marked as a component or composition. The only difference is the object identifier: A component has no identity, hence the persistent component class requires no identifier property or identifier mapping.
Hibernate uses the term component for a user-defined class that is persisted to the same table as the owning entity, that is not the case in one-to-one mapping
Hope this helps
subject: difference between <component> and <one-to-one> element in hibernate