0
我想使用参数表达式作为in子句的一部分。我想查询一系列酒吧中有酒吧的Foos列表。这可能吗?使用ParameterExpression作为In子句的一部分
Foo
// Join, ManyToOne
Bar getBar()
Query
ParameterExpression<???> barParameter;
void setup() {
CriteriaBuilder builder = ...
CriteriaQuery<Foo> criteria = ...
Root<Bar> root = ...
barParameter = builder.parameter(???);
criteria.where(
builder.in(root.get(Foo_.bar)).value(barParameter)
);
}
List<Foo> query(Set<Bar> bars) {
TypedQuery<Foo> query = createQuery();
query.setParameter(barParameter, bars);
return query.getResultList();
}
这也许[链接](http://stackoverflow.com/a/11349052/870122)可以是有帮助的:它不是'ParameterExpression'S,但可能是一个起点... – perissf 2012-08-07 12:46:27
我发现的一切(包括你的链接)有创建CriteriaQuery时in子句的实际数据。我一直在使用CriteriaQuery构建一次的模式,并使用参数表达式设置实际参数。我只是希望有一些简单的东西可以忽略使用ParameterExpression。 – 2012-08-07 15:19:43