Home > Java > javaTutorial > What is the \'Owning Side\' in ORM Bidirectional Relationships and Why is it Important?

What is the \'Owning Side\' in ORM Bidirectional Relationships and Why is it Important?

Patricia Arquette
Release: 2024-11-24 16:44:10
Original
528 people have browsed it

What is the

Understanding the "Owning Side" in ORM Mappings

In the realm of Object-Relational Mapping (ORM), bidirectional relationships between entities can pose a challenge due to the unidirectional nature of relational databases. To address this, ORMs introduce the concept of an "owning side," which serves to streamline data persistence and maintain referential integrity.

Definition of Owning Side

In an ORM mapping, the owning side refers to the entity that manages the foreign key relationship within the database. That is, the owning side is responsible for tracking and maintaining changes to the foreign key in the related table.

Explanation with Mapping Examples

Consider the following mapping scenarios:

  • One-to-Many: In a one-to-many relationship, the owning side typically contains the collection of related entities. For instance, in the mapping between a Person entity and a collection of IdDocument entities, the Person entity would be considered the owning side.

    @Entity
    public class Person {
      @OneToMany(mappedBy="person")
      private List<IdDocument> idDocuments;
    }
    
    @Entity
    public class IdDocument {
      @ManyToOne
      private Person person;
    }
    Copy after login
  • One-to-One: Similar to the one-to-many relationship, in a one-to-one mapping, the owning side typically contains the reference to the related entity. In this case, since the relationship is unique, either entity can be designated as the owning side.

    @Entity
    public class Person {
      @OneToOne(mappedBy="person")
      private IdDocument idDocument;
    }
    
    @Entity
    public class IdDocument {
      @OneToOne
      private Person person;
    }
    Copy after login
  • Many-to-One: In a many-to-one mapping, the owning side typically contains the foreign key to the related entity. Consider a mapping between a collection of Student entities and a School entity. The Student entity would be the owning side, containing a reference to the School entity.

    @Entity
    public class Student {
      @ManyToOne
      private School school;
    }
    
    @Entity
    public class School {
      @OneToMany(mappedBy="school")
      private List<Student> students;
    }
    Copy after login

Consequences of Mapping without Owning Side

If the owning side is not explicitly declared in a bidirectional relationship, Hibernate will create a third association table to facilitate the mapping. This can lead to a proliferation of unnecessary tables and may impact database performance.

Conclusion

Understanding the concept of the owning side is crucial for effective ORM mapping. By correctly designating the owning side, developers can ensure efficient data persistence and avoid potential data integrity issues.

The above is the detailed content of What is the \'Owning Side\' in ORM Bidirectional Relationships and Why is it Important?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template