com.querydsl.core.types.Predicate 升级到 Spring boot 1.4.0 后找不到符号

com.querydsl.core.types.Predicate symbol not found after upgrading to Spring boot 1.4.0

我刚刚将 spring 引导版本更新为 1.4.0。之后我收到类似

的错误
Error:(109, 45) java: no suitable method found for findAll(com.mysema.query.types.Predicate,org.springframework.data.domain.Pageable)
    method org.springframework.data.querydsl.QueryDslPredicateExecutor.findAll(com.querydsl.core.types.Predicate,org.springframework.data.domain.Sort) is not applicable
      (argument mismatch; com.mysema.query.types.Predicate cannot be converted to com.querydsl.core.types.Predicate)
    method org.springframework.data.querydsl.QueryDslPredicateExecutor.findAll(com.querydsl.core.types.Predicate,com.querydsl.core.types.OrderSpecifier<?>...) is not applicable
      (argument mismatch; com.mysema.query.types.Predicate cannot be converted to com.querydsl.core.types.Predicate)
    method org.springframework.data.querydsl.QueryDslPredicateExecutor.findAll(com.querydsl.core.types.OrderSpecifier<?>...) is not applicable
      (varargs mismatch; com.mysema.query.types.Predicate cannot be converted to com.querydsl.core.types.OrderSpecifier<?>)
    method org.springframework.data.querydsl.QueryDslPredicateExecutor.findAll(com.querydsl.core.types.Predicate,org.springframework.data.domain.Pageable) is not applicable
      (argument mismatch; com.mysema.query.types.Predicate cannot be converted to com.querydsl.core.types.Predicate)

升级之前,查询工作正常。

很可能(因为提供的信息非常有限)您使用的 QueryDSL 版本有误。 QueryDSL Predicate class 现在(从 QueryDSL 4 开始)在包 com.querydsl.core.types 中。 尝试从 pom 中删除 queryDSL 依赖项的版本(如果使用 maven),并改为在依赖项管理部分使用 Spring Boot BOM 依赖项。参见 here