Spring 如何为QueryDslPredicateExecutor编写谓词

Spring 如何为QueryDslPredicateExecutor编写谓词,spring,spring-data,spring-data-jpa,predicate,querydsl,Spring,Spring Data,Spring Data Jpa,Predicate,Querydsl,当我尝试使用Spring参考中所示的Querydsl时-我从IDE中得到一些错误: 无法解析方法findAll(谓词)。我将导入更改为com.mysema.query.types.Predicate。现在这个方法看起来不错。 但我无法解决以下问题: Predicate predicate = user.getUsername().equalsIgnoreCase(username).and((user.getId().equals(userid)).not); 我遇到错误:无法解析方法:和,无

当我尝试使用Spring参考中所示的Querydsl时-我从IDE中得到一些错误: 无法解析方法findAll(谓词)。我将导入更改为com.mysema.query.types.Predicate。现在这个方法看起来不错。 但我无法解决以下问题:

Predicate predicate = user.getUsername().equalsIgnoreCase(username).and((user.getId().equals(userid)).not);
我遇到错误:无法解析方法:和,无法解析方法

一些参考资料: 例32。存储库上的Querydsl集成

interface UserRepository extends CrudRepository<User, Long>, QueryDslPredicateExecutor<User> {

}
但这个例子是不正确的。
有人知道如何使用这个吗?

您可能使用了错误的
用户
对象。我假设您当前正在使用域类
User
,但您需要使用由Querydsl生成的类,通常命名为
QUser

参见示例代码

有关如何使用Querydsl生成必要的类,请参见

Predicate predicate = user.firstname.equalsIgnoreCase("dave")
.and(user.lastname.startsWithIgnoreCase("mathews"));

userRepository.findAll(predicate);