JPA JPQL: select items when attribute of item (lis

2019-01-24 03:13发布

public class Document extends Model {
... 
@ManyToMany
public Set<User> accessors;
...
}

I want to select all Documents which accessors contain a certain user. I have just minimal experiences with SQL and no experiences with JPQL. So how to do that?

thanks in advance

标签: list jpa set jpql
2条回答
老娘就宠你
2楼-- · 2019-01-24 03:37
SELECT d FROM Document AS d WHERE :user MEMBER OF d.accessors

Should be what you need, and it is simpler than joining tables. Just dont forget to use the user as a parameter instead of using its id:

query.setParameter("user", user);
查看更多
疯言疯语
3楼-- · 2019-01-24 03:42
select distinct d from Document d inner join d.accessors a where a.id = :id

You should learn how SQL joins work, and then learn how to use joins in JPQL. That's essential. You'll find plenty of tutorials online. Google is your friend.

查看更多
登录 后发表回答