У меня есть две сущности: Пользователь и Событие. У каждого пользователя есть список событий, которые ему нравятся. Поэтому я настроил карту OneToMany следующим образом:
@Entity
@Table(name = "user")
public class User {
@Id
@Column(name = "login", length = 64)
protected String login;
@OneToMany(cascade = CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
@JoinTable(name = "user_events",
joinColumns = {@JoinColumn(name = "login")},
inverseJoinColumns = {@JoinColumn(name = "event_id")})
protected List<Event> events;
}
@Entity
@Table(name = "events")
public class Event extends BaseEntity{
@Id
@Column(name = "event_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected Long eventId;
@Column(name = "title", length = 200)
protected String title;
}
Теперь у меня есть два пользователя, во-первых, я делаю одного пользователя как событие, и объединенная таблица в базе данных корректно обновляется. Затем я создаю другого пользователя, похожего на то же событие, но на этот раз возникает ошибка, в которой говорится, что повторяющееся значение ключа нарушает уникальное ограничение «user_events_event_id_key». Я не устанавливал никаких ограничений на объединенную таблицу, поэтому не знаю, откуда это ограничение. Может ли кто-нибудь помочь мне снять это ограничение. Большое спасибо.