я начал учить весенний мвк. Я делал некоторые практики, и я столкнулся с логической ошибкой. В моем примере у меня есть 2 класса сущности весной MVC. Там мой код school_ıd - это первичный ключ. Когда я пытался удалить школу из списка школ, я выдавал ошибку вроде этой
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails
Начальная школа:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="school_id")
private int schoolId;
@Column(name="school_name")
private String schoolName;
public int getSchoolId() {
return schoolId;
}
public void setSchoolId(int schoolId) {
this.schoolId = schoolId;
}
public String getSchoolName() {
return schoolName;
}
public void setSchoolName(String schoolName) {
this.schoolName = schoolName;
}
Entity Student
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
@Column(name="email")
private String email;
@OneToOne
@JoinColumn(name="school_id")
private School school;
public School getSchool() {
return school;
}
public void setSchool(School school) {
this.school = school;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
Метод удаления школьного контроллера:
@GetMapping("/deleteSchool")
public String deleteSchool(@RequestParam("schoolID") int
theSchoolId) {
schoolService.deleteSchool(theSchoolId);
return "redirect:/school/list";
}
Метод удаления SchoolDAOImpl:
@Override
public void deleteSchool(int theSchoolId) {
Session currentSession=sessionFactory.getCurrentSession();
Query theQuery=currentSession.createQuery("delete from School where id=:schoolID");
theQuery.setParameter("schoolID", theSchoolId);
theQuery.executeUpdate();
}
На самом деле, сейчас проблема в том, что я пытаюсь удалить школу, в школе есть по крайней мере 1 ученик, из-за чего я не могу удалить школу. Для этого сначала мне нужно удалить ребенка, в этом примере ребенок - студент после удаления родителя (школа)
Но я думаю, что мой сценарий не доступен для этого. Пожалуйста, помогите мне, что я должен делать?