Pessoal, meu problema é o seguinte.
No momento de atualizar as entidades no banco, lança uma exceção de violação de constraint de unicidade.
Segue abaixo as classes de modelo.
@Entity
@Table(name = "tb_task")
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
private User teacher;
@ManyToOne
private Clazz clazz;
@Column(nullable = false, length = 300)
private String reference;
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "dd-MM-yyyy HH:mm")
@Column(name = "ending_date", nullable = false)
private Calendar endingDate;
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "dd-MM-yyyy HH:mm")
@Column(name = "creation_date", nullable = false)
private Calendar creationDate = Calendar.getInstance();
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "tb_task_has_questions", joinColumns = {
@JoinColumn(name = "task_id", referencedColumnName = "id", unique = false) }, inverseJoinColumns = {
@JoinColumn(name = "question_id", referencedColumnName = "id", unique = false) })
private List<Question> questions;
// getters and setters
// hashCode and equals
}
@Entity
@Table(name = "tb_question")
public class Question {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, length = 300)
private String description;
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "tb_question_has_options", joinColumns = {
@JoinColumn(name = "question_id") }, inverseJoinColumns = { @JoinColumn(name = "option_id") })
private List<Option> options;
// getters and setters
// hashCode and equals
}
@Entity
@Table(name = "tb_option")
public class Option {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, length = 20)
private String description;
@Column(nullable = false)
private Boolean answer;
// getters and setters
// hashCode and equals
}