gpt4 book ai didi

java - JPQL 检查多对多关系

转载 作者:搜寻专家 更新时间:2023-10-31 19:50:42 29 4
gpt4 key购买 nike

只是一个简单的问题:

有实体(例如用户)通过多对多关系连接到同一实体(例如此关系描述“友谊”并且是​​对称的)。

检查用户 A 是否是用户 B 的“ friend ”的执行时间最快的方法是什么? “愚蠢”的方法是获取整个列表,然后检查用户是否存在,但这显然是开销。

我正在使用 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 为 friend 的人。如果要将结果限制为仅 A,请在 WHERE 子句中添加条件。

虽然不确定这是实现您想要的目标的最佳方式。 “愚蠢”的方法实际上看起来并不那么愚蠢。

关于java - JPQL 检查多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2904120/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com