我正在使用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) {
}
其中输入是用户ID和朋友ID,如果用户是该人的朋友,则返回用户和朋友,否则只返回用户。这位朋友可以是收藏中的“朋友”或“朋友”,当收到这些收藏时,这些收藏品应该只包含这位朋友而不包含其他朋友。
如何实现查询来执行此操作?如果可能的话请提供一个例子。
答案 0 :(得分:0)
我不确定是否可以使用查询(HQL或Criteria)来完成,但这可以使用过滤器完成。你尝试过用过吗?