У меня есть 2 таблицы проекта и сотрудник имеет несколько отношений.Проект имеет много сотрудников, сотрудник может присоединиться ко многим проектам (многие ко многим).В проекте есть один сотрудник, который является руководителем группы. Сотрудник может управлять многими проектами (от многих к одному).Итак, как я проектирую базу данных и сопоставляю модель классов с базой данных.Кто-нибудь, помогите мне Это мой код
класс пользователя
@Entity(name = "USERS")
public class Users {
@Id
@Column(name = "USER_ID", length = 6)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer userId;
@Column(name = "USER_NAME", length = 50, nullable = false)
private String userName;
@Column(name = "PASS_WORD", length = 50, nullable = false)
private String passWord;
@Column(name = "FULL_NAME", length = 50, nullable = false)
private String fullName;
@Column(name = "EMAIL", length = 50, nullable = false)
private String email;
@Column(name = "PHONE", length = 11, nullable = true)
private String phone;
@Column(name = "STATUS", nullable = true)
private Boolean status;
@ManyToMany(fetch = FetchType.LAZY)
@JsonIgnore
@JoinTable(name = "USERPROJECT", joinColumns = { @JoinColumn(name =
"USER_ID") }, inverseJoinColumns = {
@JoinColumn(name = "PROJECT_ID") })
private List<Project> projects;
@OneToMany(mappedBy = "teamlead")
private List<Project> projectOfTeamLead;
//get set.....
}
класс проекта
@Entity(name = "PROJECTS")
public class Project {
@Id
@Column(name = "PROJECT_ID", length = 6)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer projectId;
@Column(name = "PROJECT_NAME", length = 50, nullable=false)
private String projectName;
@Column(name = "USER_CREATE_ID", length = 6, nullable=false)
private Integer userCreateId;
// @Column(name = "TEAM_LEAD_ID", length = 6, nullable=false)
// private Integer teamLeadId;
@Column(name = "TIME_START", nullable=true)
private Date timeStart;
@Column(name = "TIME_END", nullable=true)
private Date timeEnd;
@ManyToMany(mappedBy = "projects")
private List<Users> users;
@ManyToOne
@JoinColumn(name = "TEAM_LEAD_ID")
private Users teamlead;
//get set...
}