私はSpringとMySqlデータベースを使用しています。私は1対多の関係として投稿テーブルに接続されているユーザーテーブルからユーザーを削除しようとしています。解決方法親行を削除または更新できません:Springで外部キー制約が失敗する
User.java
@OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
private List<Post> posts;
//getters and setters
}
Post.java
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn (name="profesor_id", referencedColumnName="id", unique=true)
private User user;
//getters and setters
Profesor.java
@Entity
public class Profesor extends User {
private String jobTitle;
public String getJobTitle() {
return jobTitle;
}
public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}
}
Controller.java
@RequestMapping(value="profesorList/{id}/deleteProfesor", method=RequestMethod.GET)
public ModelAndView deleteProfesor(@PathVariable long id){
profesorRepository.delete(id);
return new ModelAndView("redirect:/profesorList");
}
index.htmlを
<td><a th:href="@{'/profesorList/{id}/deleteProfesor'(id=${profesor.id})}"</a></td>
UserRepository.java
@Repository
public interface UserRepository extends CrudRepository<User, Long>, UserDetailsService {
public User findUserByUsername(String username);
}
ProfesorRepository.java
@Repository
public interface ProfesorRepository extends JpaRepository<Profesor, Long>{
}
私は1つのテーブル継承を使用しています。だから私はユーザーと同じテーブルのユーザーと教授を持っています。
しかし、私はそれを実行しようとしたとき、私はこのエラーを取得しています:
Cannot delete or update a parent row: a foreign key constraint fails (`data`.`post`, CONSTRAINT `FK5q2menkhkd7av4xfslbgbuq3y` FOREIGN KEY (`profesor_id`) REFERENCES `users` (`id`))
私はそれを解決できますか?