List JPA JPQL:当项(列表/集合)的属性包含另一项时选择项 公共类文档扩展模型{ ... @许多 公共集存取器; ... }
我想选择访问者包含某个用户的所有文档。 我只有很少的SQL经验,没有JPQL经验。 那怎么做呢 提前谢谢List JPA JPQL:当项(列表/集合)的属性包含另一项时选择项 公共类文档扩展模型{ ... @许多 公共集存取器; ... },list,jpa,set,jpql,List,Jpa,Set,Jpql,我想选择访问者包含某个用户的所有文档。 我只有很少的SQL经验,没有JPQL经验。 那怎么做呢 提前谢谢 public class Document extends Model { ... @ManyToMany public Set<User> accessors; ... } 您应该学习SQL连接如何工作,然后学习如何在JPQL中使用连接。这很重要。你会在网上找到很多教程。谷歌是你的朋友 select distinct d from Document d inner join
public class Document extends Model {
...
@ManyToMany
public Set<User> accessors;
...
}
您应该学习SQL连接如何工作,然后学习如何在JPQL中使用连接。这很重要。你会在网上找到很多教程。谷歌是你的朋友
select distinct d from Document d inner join d.accessors a where a.id = :id
这应该是您所需要的,而且比连接表更简单。
请不要忘记将用户用作参数,而不要使用其id:
SELECT d FROM Document AS d WHERE :user MEMBER OF d.accessors
@user1071828您应该单击勾号以表明它是正确答案;-)你能检查一下这个问题吗?请不要忘记清楚的。我不明白为什么会出现重复的实体:')如果我们使用
,会有什么区别:元素中的用户(d.accessors)
而不是…:(d.accessors)的用户成员
?@Manuel:
query.setParameter("user", user);