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

时间:2016-07-29 14:41:35

标签: spring-boot spring-data-jpa querydsl

我刚刚将spring boot版本更新为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)

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

1 个答案:

答案 0 :(得分:3)

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