我的春季启动App数据表中有3个实体,分别是Appusers,Teacher和Student
Appusers
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name= "appuserId", updatable=false)
private Long appuserId;
@Column(name = "username")
private String username;
@Column(name = "fullname")
private String fullName;
@Column(name = "email")
private String email;
@Column(name = "password")
private String password;
@OneToOne(mappedBy = "appuser")
private Teacher teacher;
@OneToOne(mappedBy = "appuser")
private Student student;
老师
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "teacherId" , updatable = false)
private Long teacherId;
@Column(name= "firstname")
private String firstName;
@Column(name = "lastname")
private String lastName;
@Column(name="designation")
private String designation;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "appuserId", nullable = true)
private Appuser appuser;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true ,mappedBy="teacher")
@JsonIgnore
private List<Course> courses;
学生
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name= "studentId", updatable=false)
private Long studentId;
@Column(name = "firstName")
private String firstName;
@Column(name = "lastName")
private String lastName;
@Column(name = "enrolledSince")
private String enrolledSince;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "appuserId", nullable = false)
private Appuser appuser;
@OneToMany(cascade = CascadeType.ALL,orphanRemoval=true, mappedBy="student")
@JsonIgnore
private List<CourseStudent> courseStudents;
我可以在邮递员中使用json格式插入appusers表中,并且运行良好。但是,当我尝试插入教师或学生表时,appusers中的结果为null。它不应为null,因为老师和学生对应用程序用户的外键。
这不应该发生。保存老师或学生时,应指定数据库中已经存在的appuser。并使用appuserId代替Appuser,这足以确定它属于哪个appuser。