Joining two tables Hibernate

I am working with Spring MVC + Hibernate ( Spring data jpa ).

Here I am not getting how to create a table in Hibernate for the following scenario.

I have two tables :

1) User Details

2) Branch

Now, For every user, there is a field for branch, and that value should be from Branch table.

I have knowledge of OneToOne in hibernate. But it inserts a new entry for users branch field in Branch table. What I want is that, when I save user details in User Table, branch details should be just a reference from Branch table for matching row.

Thank you in advance

Suppose your branches can be identified by their names:

UserDetails user = new UserDetails();


public class UserDetails {
  Long id;

  Branch branch;

public class Branch {
  Long id;

public interface BranchRepository extends Repository<Branch, Long> {

public interface UserDetailsRepository extends Repository<UserDetails, Long> { 

You can use the User-Branch relationship by controlling the association through its Foreign Key.

And inside the User class, you will specify the OneToOne mapping as follows:

private Branch branch;

And this “User_Branch_ID” refers to the foreign key which you have created while creating the User database table as follows:

create table BRANCH (

   name VARCHAR(30) NOT NULL,
   city  VARCHAR(30) NOT NULL,
   country  VARCHAR(30) NOT NULL,
   PRIMARY KEY (address_id)
create table USER (
   user_branch_id BIGINT NOT NULL,
   first_name VARCHAR(30) NOT NULL,
   last_name  VARCHAR(30) NOT NULL,
   PRIMARY KEY (user_id),
   CONSTRAINT user_branch FOREIGN KEY (user_branch_id) REFERENCES BRANCH ( branch_id)

step 1: create a view

create view v_BRANCH_USER as 
                a.branch_id, ,,
                b.user_id,b.first_name, b.last_name
         from BRANCH a,  USER b
         where a.branch_id = b.user_branch_id

step 2: create a pojo and mapping to hibernate as a table

@Table(name = "v_BRANCH_USER")

public class VBranchUser
       String userId;

step 3: You can query it as a table (Criteria, HQL ..)