Java

Hibernate Many to Many Mapping

Hibernate Many to Many Mapping

Hibernate Many to Many is a combination of one-to-many and reverse of one-to-many. When creating a POJO class, one need to use the reference variable of type collection. Hibernate Many to Many relationship means applying one-to-many relationship on both sides in two POJO classes means it is bidirectional. Collection property will be used while using Hibernate Many to Many mapping.

In a Database, Hibernate Many to Many relationships is not applicable to two tables. So use the third table. This third table is called a Join table. It will store foreign keys of two tables. Key points of hibernate mappings are:

  1. Hibernate Many to Many – Join table is utilized in many to many mapping to keep the primary key as foreign key.
  2. Join table will have only foreign keys.

Many-to-many mapping is an association between two entities where one instance of an entity is associated with the multiple instances of another entity and vice-versa. A many-to-many relationship always has two sides called an owning side and a non-owning side. The Join operation of a table is defined on the owning side and the owning side has a field that stores collection of target entities.

The many-to-many association can be either unidirectional or bidirectional.

  • In unidirectional association, only source entity has a relationship field that refers to the target entities. We can navigate this type of association from one side
  • In bi-directional association, each entity has a relationship field that refers to each other. We can navigate this type of association from both sides

For example, we can have a cart and item table and cart_items table for many-to-many mapping. Every cart can have multiple items and every item can be part of multiple carts, so we have a many to many mapping here.

cart

Cart_Items table doesn’t have any extra columns, actually it doesn’t make much sense to have extra columns in many-to-many mapping table. But if you have extra columns, the implementation changes a little bit and we will look into that in another post.

Author: STEPS

Leave a Reply

Your email address will not be published. Required fields are marked *