如何使用Hibernate注释配置从2个模型类制作桥接表



如何使用 Hibernate/jpa configuration使用注释来制作 bridge表

1:bookmodel
2:usermodel

现在,我必须通过字段创建两个桥接表

book_id 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; 

这将生成带有所需列的名称book_user_table的第三表。有关详细说明,请参阅此信息:https://dzone.com/tutorials/java/hibernate/hibernate/hibernate-example/hibernate-mapping-many-to-many-to-many-usish-using-sannotations-1.html

从我的问题中我了解的是,您想知道如何映射书籍和用户,以便这些实体之间有很多关联。

如果是这样,则需要在两个关联上指定@ManyToMany,并将其中一个作为逆,另一个与@JoinTable结束。这里的示例映射。下面的摘要。

@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; 

相关内容

  • 没有找到相关文章

最新更新