I am a bit stucked constructing a dynamic query using the CriteriaBuilder of JPA 2.0.
I have quite a common use case I guess: User supplies a arbitrary amount of search parameters X to be and / or concatenated: like :
select e from Foo where (name = X1 or name = X2 .. or name = Xn )
The Method or of CriteriaBuilder is not dynamic:
Predicate or(Predicate... restrictions)
Ideas? Samples?
In your case, I would rather use
Expression#in(Collection)
to avoid having to loop and to build a compoundPredicate
dynamically:You might want to check Basic Type-Safe Queries Using the Criteria API and Metamodel API for more details.
in this code Foo_.name is going to give compilation error. As the field is not declared in that. I'm not able to understand this. Please suggest me.
-raghu