0

可能重复:
如何在参数为集合的情况下编写 JPA 查询?

我有 2 个实体

@Entity
public class Container {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long id;

    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    Set<Child> data = newHashSet();
}
@Entity
public class Child {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long id;
}

现在我想选择所有包含指定子容器的容器。select c from Container c where :child in c.data我编写了产生 sql 的jpa 查询

select 
    container0_.id as id4_ 
from 
    Container container0_ 
    cross join Container_Child data1_, Child child2_ 
where 
    container0_.id=data1_.Container_id 
and data1_.data_id=child2_.id 
and (? in (.)) 
limit ? [42001-168]

并失败JdbcSQLException。我该如何解决?

4

1 回答 1

0

尝试:SELECT con FROM Container con JOIN con.data ch WHERE ch = :child

于 2012-10-24T12:41:49.167 回答