[英]JPQL check many-to-many relationship
只是一个简单的问题:
有一个实体(例如User)与ManyToMany关系连接到同一个实体(例如,这个关系描述了“友谊”,它是对称的)。
检查用户A是否是用户B的“朋友”的执行时间最快的方法是什么? “愚蠢”的方式是获取整个List,然后检查用户是否存在,但这显然是开销。
我正在使用JPA 2
这是示例代码:
@Entity
@Table(name="users")
public class UserEntity {
@ManyToMany(fetch = FetchType.LAZY)
private List<UserEntity> friends;
....
}
如果您不想检索整个列表,那么使用MEMBER OF
会怎么样? 像这样的东西:
SELECT user FROM UserEntity user WHERE :friend MEMBER OF user.friends
这会给你所有以B为朋友的人。 如果要将结果限制为仅限A,请在WHERE子句中添加条件。
不确定这是实现你想要的最佳方式。 实际上,“愚蠢”的方法看起来并不那么愚蠢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.