@ManyToManyマッピングは結合テーブルを使用して行われます。あなたの場合、Foo_Userこれらのマッピングを持つテーブルが必要です。つまり、Foo_idaUser_idと列です。(Foo_idとUser_idをそれぞれの主キーに置き換えます。また、とのテーブルはどこにあるFoo_UserかTable1_Table2に置き換えます)Table1FooTable2User
@JoinTable注釈を使用して、これらのデフォルトをオーバーライドできます。
@ManyToMany(mappedBy = "votedDownBy")
@JoinTable(name="User_Foo_Votedown",
joinColumns={@JoinColumn(name="User_ID")},
inverseJoinColumns={@JoinColumn(name="Foo_id")})
private Set<Foo> votedDown =new HashSet<Foo>();
@ManyToMany(mappedBy = "favouritedBy")
@JoinTable(name="User_Foo_Fav",
joinColumns={@JoinColumn(name="User_ID")},
inverseJoinColumns={@JoinColumn(name="Foo_id")})
private Set<Foo> favourites = new HashSet<Foo>();
と
@ManyToMany(mappedBy = "votedDown")
private Set<User> votedDownBy = new HashSet<User>();
@ManyToMany(mappedBy = "favorites")
private Set<User> favouritedBy = new HashSet<User>();
これは対称的な双方向の関係であるため、mappedBy注釈を inUserとJoinTableinに入れることもできます。Foo