我需要确保一个实体专门针对一个实体。
例如,我有一个人可以是学生,也可以是老师。必须是其中之一,不可能两者都是。我希望该人只与一名学生或教师关联。
我使用MySQL和JPA。
我怎样才能做到这一点?
如果某人是学生或教师,不能同时是两者,并且不能从学生变成教师,反之亦然,则可以使用继承:
@Entity
public abstract class Person {
...
}
@Entity
public class Student extends Person {
}
@Entity
public class Teacher extends Person {
}
如果学生和教师是一个人可以拥有的角色,并且一个人一次只能拥有一个角色(但可以更改角色),请使用属性。例如:
public enum Role {
TEACHER,
STUDENT
}
@Entity
public class Person {
private Role role;
...
}