Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List JPA JPQL:当项(列表/集合)的属性包含另一项时选择项 公共类文档扩展模型{ ... @许多 公共集存取器; ... }_List_Jpa_Set_Jpql - Fatal编程技术网

List JPA 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

我想选择访问者包含某个用户的所有文档。 我只有很少的SQL经验,没有JPQL经验。 那怎么做呢

提前谢谢

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);