我正在尝试从ManyToMany
关系的JPA查询中获取结果。我有实体 -
A.java
@ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
@JoinTable(name = "a_tags")
private List<Tag> tags;
然后我尝试运行以下查询 -
Query query2 = entityManager
.createQuery("select s from A s where s.tags IN(:tags)");
query2.setParameter("tags", findTags(keyword));
但我一直收到以下错误java.sql.SQLException: No value specified for parameter 1
。
之前我使用过IN
条件,但仅用于检查集合中的单个对象。
任何指针?
依赖关系信息 -
答案 0 :(得分:3)
select distinct s from A s join s.tags t where t IN (:tags)
答案 1 :(得分:-1)
将IN与集合值参数一起使用时,您不需要使用(...)
Query query2 = entityManager
.createQuery("select s from A s where s.tags IN :tags");
query2.setParameter("tags", findTags(keyword));