2017-03-25 13 views
1
public class Event { 
    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) 
    private Set<User> users = new HashSet<>(); 
} 

public class User { 
    @OneToMany 
    private Set<Event> events = new HashSet<>(); 
} 

私はUser EntityからEventへの双方向リンクをどのようにしていますか?JPA/Hibernate双方向セット

イベントエンティティは、event_usersというピボットテーブルを作成します。

答えて

1

あなたは@ManyToManyマッピングを使用する必要があります:

public class Event { 
    @ManyToMany(cascade = CascadeType.ALL, mappedBy="events") 
    private Set<User> users = new HashSet<>(); 
} 

public class User { 
    @ManyToMany 
    @JoinTable(
     name="event_users", 
     [email protected](name="user_ID", referencedColumnName="ID"), 
     [email protected](name="event_ID", referencedColumnName="ID")) 
    private Set<Event> events = new HashSet<>(); 
} 

私は両方のテーブルのIDがIDと呼ばれ、リンクテーブルがuser_idevent_id含まれていることを前提としています。

ユーザーはここで関係の所有側になります。

+0

おそらく両方のクラスに 'id'を指定する必要があります。 –

+1

よく私はそれが明らかになったと思っています –

+0

すごくうまくいって、感謝しました! –