Alright, so I dug into Hibernat's documentation which actually
recommends using a join table (a many-to-many) relationship when expressing a unidirectional, one-to-many relationship within the DB. Reference:
http://www.hibernate.org/hib_docs/v3/re ... ional-join . That doesn't seem to make a lot of sense to me for a typical Parent/Child relationship.
Suppose "Child" is a composite element of "Parent." In other words, it doesn't make sense for Child to exist if Parent is removed. Mapping this relationally, the Child DB table stores a foreign key reference to the Parent. So the Parent cannot be removed unless the Child entries get removed with it. But setting up a join table implies that Child
can exist without the parent and may, in fact, belong to multiple Parent objects; thus, distorting the data model.
Did I miss a new tenant of normalization that states that all Parent/Child relationships should be expressed via join tables?[/b]