나는 세 가지 클래스가 있습니다.
사용자는 여러 가지 이벤트에 대해 하나의 이벤트를 구성하거나 참석자가 될 수 있습니다.
이벤트에는 주최자가 하나만 있고 많은 참석자가있을 수 있습니다.
Attende - (내가 @ManyToMany 주석을 사용하지 않는 이유는 그게 전부) 이벤트 테이블 바인딩 사용자 및이 추가 필드 참석자 클래스의봄 휴식 많은 응답 많은
나는 그가 참석 이벤트 내 응답 쇼 사용자를 원하지만 어떻게 든 제외 "사용자"필드 .
이벤트를 검색 할 때 참석자 클래스에서 "이벤트"를 제외하고 싶습니다.
나는 사용자 표현 및 이벤트 표현을 위해 Dto를 작성하는 것에 대해 설명하지만, 모든 코드를 복제하는 것처럼 느껴집니다.
참석자 클래스에 주석을 달 수있는 방법이 없으므로 이벤트에는 한 가지만 표시되고 사용자에게는 다른 것을 표시합니다.
@JsonManagedReference와 @JsonBackReference에 대해 읽었지 만 여기서는 도움이되지 않을 것입니다.
@Entity
@Table(name = "calendar_users")
public class User extends BaseEntity {
@Column(nullable = false)
private String name;
@OneToMany(mappedBy = "user")
private List<Attendee> attendeeEvents;
@OneToMany(mappedBy = "organizer")
private List<Event> organizedEvents;
}
@Entity
@Table(name = "events")
public class Event extends BaseEntity {
@Column(nullable = false)
private String name;
@ManyToOne(optional = false)
@JoinColumn(name = "user_id")
private User organizer;
@OneToMany(mappedBy = "event")
private List<Attendee> attendees;
}
@Entity
@Table(name = "attendees")
public class Attendee extends BaseEntity {
private Date responseTime;
@ManyToOne(optional = false)
@JoinColumn(name = "response_status_id")
private ResponseStatus responseStatus;
@ManyToOne(optional = false)
@JoinColumn(name = "user_id")
private User user;
@ManyToOne(optional = false)
@JoinColumn(name = "event_id")
private Event event;
}