Reputation: 47300
My brain is starting to hurt thinking about this, is it as simple as:
@ManyToMany(mappedBy = "following", cascade = CascadeType.ALL)
private Set<User> followers = new HashSet<User>();
@ManyToMany(mappedBy = "followers", cascade = CascadeType.ALL)
private Set<User> following = new HashSet<User>();
Upvotes: 16
Views: 9967
Reputation: 18961
Something like:
@ManyToMany(mappedBy = "following", cascade = CascadeType.ALL)
@JoinTable(name="UserRel",
joinColumns={@JoinColumn(name="ParentId")},
inverseJoinColumns={@JoinColumn(name="UserId")})
private Set<User> followers = new HashSet<User>();
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name="UserRel",
joinColumns={@JoinColumn(name="UserId")},
inverseJoinColumns={@JoinColumn(name="ParentId")})
private Set<User> following = new HashSet<User>();
Upvotes: 16