当我尝试使用Spring引用Spring 1.10.4.RELEASE reference中显示的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> {
}
以上功能可以使用Querydsl Predicate编写类型安全查询.
Predicate predicate = user.firstname.equalsIgnoreCase("dave")
.and(user.lastname.startsWithIgnoreCase("mathews"));
userRepository.findAll(predicate);
但是例子不正确.
有谁知道如何使用它?
解决方法:
您可能正在使用错误的用户对象开始.我假设您当前正在使用您的域类User,但您需要使用Querydsl生成的类,通常名为Quser.
有关示例代码,请参见https://github.com/querydsl/querydsl/tree/master/querydsl-jpa.
有关如何使用Querydsl生成必要的类,请参阅QueryDsl – How to create Q classes with maven?.