我要做一个Spring Boot项目学校管理系统。用户有很多种类型。这些用户可以登录。我是否需要创建一个用户实体,然后从用户类扩展其他实体?
这里让我想到的是实体之间存在关系。 老师、学生、经理、监护人
由于我在创建登录系统时正在处理单个实体,因此我不知道如何通过不同的实体来完成此操作。
@Data
@AllArgsConstructor
@RequiredArgsConstructor
@Builder
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
private String username;
private String password;
private String name;
private String surname;
private String gender;
private Role role;
}
@Entity
@Table(name = "teachers")
public class Teacher extends User{
private String subject;
}
@Entity
@Table(name = "students")
public class Student extends User{
private String illness;
@ManyToOne
@JoinColumn(name = "guardian_id")
private Guardian guardian;
}
@Entity
@Table(name = "guardians")
public class Guardian extends User{
@OneToMany(mappedBy = "guardian", cascade = CascadeType.ALL)
private List<Student> students;
}
我还在寻找一种通过另一个实体执行操作的方法。我很好奇。