同桌上的多对一关系

时间:2017-04-21 23:39:24

标签: mysql sql hibernate jpa

您认为公司。公司员工在Users表上。管理员必须在用户表上。

示例:

Users Table : John Watson userID=1 managerId=2(manager id have userID value)
              Emilia Clarke userID=2 managerID=null(Because this user is a Manager)

你觉得我怎么做? managerID行与Users表的多对一关系(尽管有相同的表)

John Watson的经理Emilia Clark(因为约翰的经理ID,emilia的用户ID

2 个答案:

答案 0 :(得分:0)

只需离开userId并添加一个布尔值isManager,如果用户是经理,则取值为true,否则为false。

答案 1 :(得分:0)

您可以按以下方式进行映射:

@Entity
@Table(name = "users")
public class User {

    @Id
    @Column(name = "user_id")
    @GeneratedValue(strategy = ...)
    private Long id;

    @OneToMany(mappedBy = "manager")
    private Set<User> employees;

    @ManyToOne
    @JoinColumn(name = "manager_id"
    private User manager;
}