Chapter 8. Advanced entity association mappings

 

In this chapter

  • Mapping one-to-one entity associations
  • One-to-many mapping options
  • Many-to-many and ternary entity relationships

In the previous chapter, we demonstrated a unidirectional many-to-one association, made it bidirectional, and finally enabled transitive state changes with cascading options. One reason we discuss more advanced entity mappings in a separate chapter is that we consider quite a few of them rare, or at least optional. It’s possible to only use component mappings and many-to-one (occasionally one-to-one) entity associations. You can write a sophisticated application without ever mapping a collection! We’ve shown the particular benefits you gain from collection mappings in the previous chapter; the rules for when a collection mapping is appropriate also apply to all examples in this chapter. Always make sure you actually need a collection before you attempt a complex collection mapping.

Let’s start with mappings that don’t involve collections: one-to-one entity -associations.

8.1. One-to-one associations

8.1.1. Sharing a primary key

8.1.2. The foreign primary key generator

8.1.3. Using a foreign key join column

8.1.4. Using a join table

8.2. One-to-many associations

8.2.1. Considering one-to-many bags

8.2.2. Unidirectional and bidirectional list mappings

8.2.3. Optional one-to-many with a join table

8.2.4. One-to-many association in an embeddable class

8.3. Many-to-many and ternary associations

8.3.1. Unidirectional and bidirectional many-to-many associations

sitemap