@CollectionTable annotation specifies the table that is used for the mapping of collections of basic or embeddable types. This can be applied to the collection-valued field or property in an Entity Class. The embeddable objects are not stored in the embedded source object's table, but stored in a separate collection table. This is similar to a OneToMany, except the target object is an embeddable object instead of an
@Entity. This allows collections of simple objects to be easily defined, without requiring the simple objects to define an ID or ManyToOne inverse mapping.
There are limitations to the ElementCollection instead of a OneToMany relationship. The target collection object cannot be queried, persisted, ...