您认为公司。公司员工在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
答案 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;
}