如何使用 hibernate 注释配置从 2 Model 类 制作 Bridge table

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

如何使用 Hibernate/JPA 配置使用注解制作 桥 table

1: BookModel
2: UserModel

现在我必须通过这两个字段

创建一个桥梁table

book_id and user_id

您正在尝试在您的实体之间实现 Many to Many 关系。因此,为此,如果您在用户模型中有 Books 列表,则可以按以下方式注释该列表:

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
}

在 BookModel 中,如果您有用户列表,则需要使用 @mappedBy() 注释,如下所示:

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

这将生成第 3 个 table,其名称为 book_user_table,其中包含您需要的列。详细解释见此:https://dzone.com/tutorials/java/hibernate/hibernate-example/hibernate-mapping-many-to-many-using-annotations-1.html

据我从你的问题中了解到,你想知道如何映射图书和用户,以便这些实体之间存在多对多关联。

如果是这样,你需要在两个关联上指定@ManyToMany,并使其中一个为逆向,另一端为@JoinTable。这里有一个 example mapping。下面的片段。

@ManyToMany(cascade = { CascadeType.ALL })
    @JoinTable(
        name = "Employee_Project", 
        joinColumns = { @JoinColumn(name = "employee_id") }, 
        inverseJoinColumns = { @JoinColumn(name = "project_id") }
    )
Set<Project> projects = new HashSet<>();

反面,

 @ManyToMany(mappedBy = "projects")
    private Set<Employee> employees;