私は Hibernate を使用していますが、多対多対多の関係を作成できるようにしたいと考えています。現在のシナリオ: -
バンドは多くの会場で演奏する場合があり、会場には多くのバンドがいる場合があります。
BAND >------< VENUE
これは多対多の関係を構成するため、次のような結合テーブルを使用します。
BAND ----< BAND_VENUES >---- VENUE
休止状態または SQL の両方を使用してこれを作成できます。テスト ケースを参照してください: -
@Entity
@Table(name = "Band")
public class Band implements Serializable,
{
@Id
@GeneratedValue(generator = "bandId" )
@GenericGenerator(name = "bandId", strategy = "uuid2")
private String bandId;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "Band_Venues",
joinColumns =
{
@JoinColumn(name = "bandId")
},
inverseJoinColumns =
{
@JoinColumn(name = "venueId")
})
}
と
@Entity
@Table(name = "Venue")
public class Venue implements Serializable
{
@Id
@GeneratedValue(generator = "venueId" )
@GenericGenerator(name = "venueId", strategy = "uuid2")
private String venueId;
}
これは非常に単純なようで、私には理にかなっています。
私が混乱するのは、次のシナリオを使用して別の多対多の関係を追加する場合です。
バンドはさまざまな日時に多くの会場で演奏することがあります。
BAND ----< GIG_DATES >-----< GIG_DATES_VENUES >---- VENUE
関係はあるべきだと私は信じていますが、休止状態を使用していますが、実際には「BAND_VENUES」のマッピングを持っていないので、関係を作成するにはどうすればよいですか?
マッピング ファイルではなく注釈を使用しています