Unidirectional One-To-One Relationship with Join Tables in Hibernate

In unidirectional association, we will have navigation only in one direction, i.e, only one side of the association will have the reference to the other side. The one side of the association will implement one of the collection interfaces, if it has the reference to the other entity.

In one to one relationship, single target object can have relationship with only one source object. Let’s consider CD and Artist. So only one Artist can write only one CD. So we will create three tables CD, Artist and CDArtist in the database and we will see how one-to-one relationship works step by step.

A unidirectional one-to-one association on a join table is possible, but extremely unusual.

Step 1. Create tables

Create table – CD


Create table – Artist


Create table – CDArtist


Step 2. Create a java project in any Java based IDE and configure for hibernate jars.

Step 3. Create hibernate reverse engineering and configuration file.





Step 4. Create hibernate utility class which creates singleton SessionFactory from which Session object will be created.


Step 5. Create mapping xml file and POJO for artist table



Step 6. Create mapping xml file and POJO for cd table.



Step 7. Now we will create a main class for testing unidirectional one-to-one with join tables.


Step 8. Run the main class and see the output as shown below. While we save value for cd, below values are stored into the database tables.

inserted data into artist table


inserted data into cd table


inserted data into cdartist table


Console Output


That’s all. Thanks for your reading.

Leave a Reply

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

Time limit is exhausted. Please reload CAPTCHA.