【问题标题】:Spring Data JPA Annotations for Many-to-Many Table Relationship用于多对多表关系的 Spring Data JPA 注释
【发布时间】:2017-12-13 13:36:49
【问题描述】:

我正在使用 Spring Boot 开发一个 Web 应用程序。我有如下数据库表:

role
----
id  name
1   admin
2   user
3   employee

employee
--------
id  name
1   Juan
2   Pedro
3   Marcos
4   Lucas

user
----
id  employee_id role_id     username    password
1   1           1           juan1       hello
2   1           3           juan2       hello
3   2           2           pedro1      hello
4   2           3           pedro2      hello
5   3           3           marcos      hello
6   4           3           lucas       hello

以下是领域对象类:

public class Role  {
...
    @ManyToMany(mappedBy = "roles")
    private Set<Employee> employees;

---
public class Employee {
...
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "user", 
        joinColumns = @JoinColumn(name = "employee_id", referencedColumnName = "id"),
        inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id")
    )
    private Set<Role> roles;

我想知道我需要在 User 类中使用哪些注释。我正在关注这个tutorial。但这没有第三类,因为第三个表 (book_publisher) 除了外键(book_idpublisher_id)之外没有其他字段。

谢谢。

【问题讨论】:

    标签: mysql hibernate jpa spring-boot spring-data-jpa


    【解决方案1】:

    您将需要从 Employee 到 User 的一对多关联,因为 User 是所谓的具有属性的属性关联。

    用户实体将有一个复合 ID 作为主键。

    请从 Thorben Jansen 找到一篇关于该主题的优秀文章: https://www.thoughts-on-java.org/many-relationships-additional-properties/

    【讨论】:

    • 感谢您的快速回复。我会调查的。
    • @JulezJupiter 如果我的回答有帮助,我将非常感谢您投票和/或将其标记为正确答案。谢谢。
    • 刚刚发现我的参考网站也发布了与您提供的链接类似的帖子:hellokoding.com/…
    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 2017-08-19
    • 2020-09-12
    • 2015-10-28
    • 2017-01-09
    • 2012-03-08
    • 1970-01-01
    相关资源
    最近更新 更多