Я использую Hibernate и JPA.
public class UserBean {
private String email;
private String name;
private Set<UserBean> friends;
private Set<UserBean> befriended;
}
@ManyToMany(
targetEntity=com.pixping.model.UserBean.class,
fetch = FetchType.LAZY
)
@JoinTable(
name="user_friends",
joinColumns=@JoinColumn(name="USER_ID", nullable=false),
inverseJoinColumns=@JoinColumn(name="FRIEND_ID", nullable=false)
)
public Set<UserBean> getFriends() {
return friends;
}
public void setFriends(Set<UserBean> friends) {
this.friends = friends;
}
@ManyToMany(mappedBy = "friends", fetch = FetchType.LAZY)
public Set<UserBean> getBefriended() {
return befriended;
}
Я бы хотел реализовать эту функцию
public UserBean findUser(Long userId, Long friendId) {
}
где входные данные представляют собой идентификатор пользователя и идентификатор друга, и если пользователь дружит с этим человеком, верните пользователя вместе с другом, иначе верните только пользователя. Этот друг может находиться в одной из коллекций «друзей» или «подружиться», и когда он будет возвращен, эти коллекции должны содержать только этого друга и никаких других друзей.
Как мне реализовать запрос для этого? Если возможно, приведите пример.