Search code examples
javahibernateservletsnhibernate-mapping

How can I make Bridge table from 2 Model classes using hibernate annotation configuration


How to make Bridge table using annotation using Hibernate/JPA configuration.

1: BookModel
2: UserModel

now I have to create a bridge table by these two by fields

book_id and user_id


Solution

  • You are trying to implement Many to Many relationship between your entities. So for this, If you have list of Books in User model, then you can annotate the list as following:

    public class UserModel {
    
        @ManyToMany(cascade = CascadeType.REMOVE)
        @JoinTable(name = "book_user_table", joinColumns = { @JoinColumn(name = "book_id") }, inverseJoinColumns = { @JoinColumn(name = "user_id") })
        private List<BookModel> books;
    
        //Getters and setters
    }
    

    and in BookModel, if you have list of users, then you need to use @mappedBy() annotation like following:

    @ManyToMany(mappedBy = "books") 
    private List<UserModel> users; 
    

    This will generate the 3rd table, which will have the name book_user_table, with your required columns. See this for detailed explanation: https://dzone.com/tutorials/java/hibernate/hibernate-example/hibernate-mapping-many-to-many-using-annotations-1.html