Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type"

internet

Top Contributor
Hallo,

ich versuche gerade ein Predicate zu erzeugen. JpaQueryParameter ist meine Helper Klasse, mit der ich die Werte übergebe...
Für Strings klappt das auch. Aber nicht für Longs. hier bekomme ich diese Meldung:
Unaware how to convert value [[2, 2] : java.util.ArrayList] to requested type [java.lang.Long]

Java:
/**
     * Erstellt Predicate
     *
     * @return
     */
    public static <T> Predicate createPredicate(CriteriaBuilder cb, Root<T> root, JpaQueryParameter jpaQueryParameter) {

        String fieldName = jpaQueryParameter.getParameterName();
        Object value = jpaQueryParameter.getParameterValue();
        Object valueUntil = jpaQueryParameter.getParameterValueUntil();

        Expression expression = null;

        if (fieldName.contains(".")) {
            String[] array = fieldName.split(java.util.regex.Pattern.quote("."));
            List<String> arraylist = Arrays.asList(array);

            Path current = root;
            for (String s : arraylist) {
                current = current.get(s);
                expression = current;
            }
        } else {
            expression = root.get(fieldName);
        }

        Predicate p = null;

        // Contains bei einer Liste
        if (jpaQueryParameter.getOperatorEnum().equals(OperatorEnum.CONTAINS_LIST)) {
            p = expression.in(value);
        }

Was mache ich falsch? Hat jemand eine Idee?

Object value = jpaQueryParameter.getParameterValue(); wird wie folge befüllt:
Java:
                List<Long> valueList = Lists.newArrayList(1, 2);
 

Zurück
Oben