【发布时间】:2012-08-04 11:10:25
【问题描述】:
我想使用参数表达式作为 in 子句的一部分。我想查询一个 Foos 列表,该列表中有一个 Bars 位于一组 Bars 中。这可能吗?
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();
}
【问题讨论】:
-
也许这个link 会有所帮助:这与
ParameterExpressionS 无关,但可以作为一个起点...... -
我发现的所有内容(包括您的链接)在创建 CriteriaQuery 时都有 in 子句的实际数据。我一直在使用 CriteriaQuery 构建一次并使用参数表达式设置实际参数的模式。我只是希望在使用 ParameterExpression 时我忽略了一些简单的事情。
标签: java hibernate jpa jpa-2.0