7.1. Single-valued entity associations

Let's start with one-to-one entity associations.

We argued in chapter 4 that the relationships between User and Address (the user has a billingAddress, homeAddress, and shippingAddress) are best represented with a <component> mapping. This is usually the simplest way to represent one-to-one relationships, because the lifecycle is almost always dependent in such a case, it's either an aggregation or a composition in UML.

But what if you want a dedicated table for Address, and you map both User and Address as entities? One benefit of this model is the possibility for shared references—another entity class (let's say Shipment) can also have a reference to a particular Address instance. If a User has a reference ...

Get Java Persistence with Hibernate now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.