Я хочу создать механизм следования, и у меня есть следующий класс User, который также является классом друга:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "USER_ID")
private Long id;
private String firstName;
private String lastName;
private String username;
private String password;
@Column(unique = true)
private String email;
@Column(unique = true)
private String phoneNumber;
private int age;
private Role role;
@OneToMany(mappedBy = "shareId")
private List<Share> shares;
@OneToMany(mappedBy = "trackId")
private List<Track> tracks;
//number of days of cooldown
private int cooldown;
private long numberOfReports;
@ManyToMany(cascade={CascadeType.ALL})
@JoinTable(name="FRIENDS",
joinColumns={@JoinColumn(name="USER_ID")},
inverseJoinColumns={@JoinColumn(name="FRIEND_ID")})
private Set<User> friends = new HashSet<User>();
@ManyToMany(mappedBy="friends")
private Set<User> befriended = new HashSet<User>();
, и этот код автоматически создает таблицу с именем friends, которая содержит ссылки между пользователями user_id и friend_id Теперь, когда я хочу создать ссылку между пользователями, как сказать Hibernate сделать это? UserService:
User followerUser = userRepository.findByUsername(followerUsername);
User followedUser = userRepository.findByUsername(followedUsername);
return userRepository.SOMETHING(followerUser.getId(), followedUser.getId);
}
Каким должен быть метод из userRepository?