Chapter 7. Relationships
Object/relational mapping highlights the confusion arising from the fact that experts in the object-oriented world and the relational world use different concepts and terminology. For example, a Java developer may speak in terms of a collection and classes, whereas a database guru will talk of things in terms of foreign keys and joins. In this chapter, we'll try to explain and reconcile these terms.
The discussion in this chapter breaks the different types of relationships into a few basic categories.
Database Relationships:
How relationships are viewed from a database perspective. Regardless of the type of relationship you choose, it will (obviously) be stored in the database somehow.
Java Collection Relationships:
How groups of objects can relate to one other. Governs the precise behavior of a database relationship from the Java application's perspective. All collection tags (described in Chapter 5) require a nested database relationship tag.
Java Class Relationships:
The expression of a Java class hierarchy in a database. An example of this is shown in Chapter 3.
The chapter concludes with a discussion of bi-directional collection relationships and the notion of an "any" relationship, one of the more advanced uses of Hibernate that combines aspects of Java class relationships with collection behavior.
TIP
Hibernate uses many terms in ways that differ from what a Java developer might expect. For example, the Java terms component, class, association, subclass, and collection also refer to specific Hibernate functionality or mapping tags. If a reference to a concept is confusing, make sure that you understand whether the context is a database, Java, or Hibernate.
 |