3
두 개의 엔티티 User 및 Event가 있습니다. 각 사용자는 자신이 좋아하는 이벤트 목록을 가지고 있습니다. 그래서 나는 다음과 같은 OneToMany 맵을 설정 : JPA onetomany joint table 정보
@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"을 위반한다고하는 오류가 있습니다. 나는 관절 테이블에 어떤 제한도 설정하지 않았으므로이 제한이 어디에서 오는지는 알지 못합니다. 아무도 내가이 제약 조건을 제거하도록 도울 수 있습니까? 고마워.
대단히 감사합니다! – John
빠른 질문 하나 : @ManyToOne은 어떨까요? 어떤 장소에 제약이 있습니까? – John
ManyToOne은 한면의 PK를 가리키는 여러면에서 외래 키를 사용하여 구현됩니다. 여기서 유일한 제약 조건은 필요 없습니다. –