Я новичок в Java. Я делаю HTTPDeleting с JpaRepository (DeleteById), и я получил следующую ошибку: ConstraingViolationException - FK_QUESTION_ID не может быть нулевым.
@Entity
@Data
public class Question {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "QUESTION_ID")
private int id;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String description;
// QUESTION_ID => FOREING KEY COLUMN
@OneToMany(orphanRemoval = true, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "FK_QUESTION_ID")
private List<Answer> answers;
@Column(name = "LIKE_COUNT")
private int likeCount;
@Column(name = "INTEREST_AREA_ID", nullable = false)
private int interestAreaId;
@Column(name = "USER_ID", nullable = false)
private int userId;
@Column
private boolean active;
@Column(name = "CREATED_DT", nullable = false)
private Date createdDate;
}
@Entity
@Data
public class Answer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ANSWER_ID")
private int answerId;
@Column
private String description;
@Column(name = "LIKE_COUNT")
private int likeCount;
@Column(name = "USER_ID", nullable = false)
private int userId;
@Column
private boolean active;
@Column(name = "CREATED_DT", nullable = false)
private Date createdDate;
@Column(name = "FK_QUESTION_ID")
private int questionId;
}
Я прочитал, что использование CascadeType.Delete не является хорошей практикой, поэтому я использовал orphanRemoval, но даже в этом случае не работает.
questionRepository.deleteById(id);