1. Apples and oranges. <join> pulls a value from another table into the mapped class. Your object model can be fine grained, where you have more classes than tables (<component>), flat, where you have as many classes as tables (regular <class> mappings, one per table), or coarse grained, where you have more tables than classes (<join>).
2. I think a collection of components has the same semantics as a collection of entities mapped with cascade="all,delete-orphan"
3. I think you pretty much answered your own question there. <composite-id> is not nice to work with, avoid it if you can.
|