java.lang.IllegalArgumentException: значение параметра не соответствует ожидаемому типу Спецификация - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь реализовать поиск в Spring Boot с помощью спецификаций. Наконец что-то ищет, но я получаю эту ошибку:

java.lang.IllegalArgumentException: Parameter value [com.auth0.samples.bootfaces.TelefonbuchSpecifications$$Lambda$11/1542138726@62f6f6fb] did not match expected type [java.lang.String (n/a)]

Понятия не имею. Я думаю, что реализовал это правильно, но да что угодно. Я покажу вам необходимый код: Позвоните в searchController: if (!vorname.isEmpty()) { eintraege = telefonbuchRepository.findByVorname(TelefonbuchSpecifications.hasVorname(vorname));

TelefonbuchRepository:

public interface TelefonbuchRepository extends JpaRepository, JpaSpecificationExecutor {

public List<Telefonbuch> findByVorname(Specification<Telefonbuch> spec);

Спецификация:

public interface Specification { Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb);

TelefonbuchSpecification:

public static Specification<Telefonbuch> hasVorname(String vorname) {
    return (root, query, cb) -> {
        return cb.equal(root.get(Telefonbuch_.vorname), "%"+vorname.toLowerCase()+"%");
    };
}
...