Spring Data, Hibernate - отношения один-ко-многим не сохраняются для детей - PullRequest
0 голосов
/ 28 января 2019

У меня есть отношение 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
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...