Это было мое решение вашей проблемы.Класс пользователя:
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
private String name;
@OneToMany(mappedBy="to")
private List<Followers> followers;
@OneToMany(mappedBy="from")
private List<Followers> following;
public User() {}
public User(String name) {
this.name = name;
}
}
Как вы можете видеть, класс пользователя имеет ссылку на пользователей, которые следуют, и тех, за кем он следует.
@Entity
public class Followers {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@ManyToOne
@JoinColumn(name="from_user_fk")
private User from;
@ManyToOne
@JoinColumn(name="to_user_fk")
private User to;
public Followers() {};
public Followers(User from, User to) {
this.from = from;
this.to = to;
}
}
Класс последователей содержит отношениямежду двумя пользователями, конечно, вам может понадобиться добавить больше информации в этот класс, например, когда «от» начался подписка »до«.
Если вы хотите получить последователей / подписчиков пользователя, просто позвонитесоответствующий добытчик.