У меня есть отношение One-Many между двумя объектами - WorkoutSession (родитель) и Exercise (дочерний), тренировка с множеством упражнений.
Однако, когда я пытаюсь сохранить сеанс Workout,Я получаю сообщение об ошибке:
ОШИБКА: дублирующееся значение ключа нарушает уникальное ограничение "упражнение_ключ" Подробно: ключ (id) = (21) уже существует.
У меня нетпонять, почему в упражнении не генерируется уникальный ключ?
@Entity
@Table(name="workout")
public class Workout {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String name;
private String category;
private String type;
private Timestamp duration;
private String notes;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "id")
private List<Exercise> exercises;
}
@Entity
@Table(name="exercise")
public class Exercise {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name="name")
private String exerciseName;
}
таблица сценариев создания:
CREATE TABLE WORKOUT(
ID serial PRIMARY KEY NOT NULL,
NAME CHAR(50) NOT NULL,
CATEGORY CHAR(50),
TYPE CHAR(50),
DURATION TIMESTAMP,
NOTES CHAR(500)
);
CREATE TABLE exercise (
id serial primary key not null,
workout integer references workout(id),
name char(100) NOT NULL
);