当我尝试使用Querydsl时,如Spring reference Spring 1.10.4.RELEASE reference中所示,我从集成开发环境中得到了一些错误:无法解析方法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> {
}上面的代码允许使用Querydsl谓词编写类型安全的查询。
Predicate predicate = user.firstname.equalsIgnoreCase("dave")
.and(user.lastname.startsWithIgnoreCase("mathews"));
userRepository.findAll(predicate);但是示例是不正确的。有人知道怎么用这个吗?
发布于 2018-04-30 13:50:04
您可能一开始就使用了错误的user对象。我假设您当前正在使用域类Querydsl,但您需要使用由User生成的类,通常名为QUser。
有关示例代码,请参阅https://github.com/querydsl/querydsl/tree/master/querydsl-jpa。
有关如何使用Querydsl生成必要的类,请参阅QueryDsl - How to create Q classes with maven?。
https://stackoverflow.com/questions/40633413
复制相似问题