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