Obiekt Question
@Entity
@Table(name = "question")
@Builder @AllArgsConstructor @NoArgsConstructor
@ToString @Data
public class Question {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String text;
@Enumerated(EnumType.STRING)
private Difficulty difficulty;
@OneToMany(mappedBy = "question_id", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JsonManagedReference
private List<Answer> answers;
public void setAnswers(List<Answer> answers) {
answers.forEach(e -> {
e.setQuestion_id(this);
e.setCorrect(e.isCorrect());
});
this.answers = answers;
}
}
Obiekt Quiz
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Quiz {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private boolean isActive;
private Long userId;
private Date createdDate;
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "question_quiz", joinColumns = @JoinColumn(name = "quiz_id"))
private List<Question> question;
}
Witam, mam problem z kolekcją elementów w bazie danych. Mianowicie Podczas dodawania pierwszego obiektu quiz do bazy wszystko działa jak należy. Lecz Podczas dodawania drugiego elementu dostaje błąd "ERROR: duplicate key value violates unique constraint "uk_i2lvyr76f4lh1ppepa6b5tsen"
Szczegóły: Key (question_id)=(12) already exists.". Wygląda na to że 'question_id' jest brane jako primary key i nie można dodać drugiego klucza z takim id.
Mógłby ktoś poprawić mój kod ?
Dla ułatwienia załączam screeny z bazy danych :D.