私は3つのクラスを持っています。
ユーザーは、1つのイベントを編成することも、多数のイベントの出席者にすることもできます。
イベントには主催者が1人しかなく、多くの出席者がいます。
Attende - イベントとテーブル結合ユーザー、および追加のフィールドを持っている(ザッツなぜ私は@ManyToManyアノテーションを使用しないでください)バネレスト多対多応答
私は出席者のクラスで、彼が出席し、何とか除外イベント「ユーザー」フィールドと私の応答ショーのユーザーが欲しいです。
イベントを探しているときに、出席者クラスで「イベント」を除外します。
私は、ユーザー表現とイベント表現のためにDtoを作成することをお勧めしますが、すべてのコードを複製するように感じます。
Attendeeクラスに注釈を付ける方法はありますか?Eventでは1つのことが表示され、Userに対しては別のものが表示されますか?
@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;
}