invoke CriteriaBuilder methods with Methode.invoke()

Viewed 26

I want to invoke CriteriaBuilder methods, e.g equal, like..., with Methode.invoke(), however such methods take javax.persistence.criteria.Expression as arguments, i'm looking for a way to cast primitive types (String, Double, int...) into Expression<?>, so I can run correctly the following code :

public static Specification<Balance> withLine(String line, String operator) {
return (root, query, builder) -> {
            Method method = null;
            try {
                
                method = CriteriaBuilder.class.getMethod(operator, Expression.class, Expression.class);
                Expression lineExp = //cast line to Expression;
                return (Predicate) method.invoke(builder, root.get("line"), lineExp );
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;

        };
    }
0 Answers
Related