【发布时间】:2015-06-10 21:22:47
【问题描述】:
如果我的数据库中有产品表,并且我想查询 20 个最昂贵的产品。
SELECT p FROM Products p ORDER BY p.price DESC LIMIT 20
我怎样才能把它翻译成 QueryDSL 谓词,甚至有可能吗?我已经阅读了很多教程和其他内容,并且看到过这样的事情:
QProducts p = QProducts.product;
JPAQuery query = new JPAQuery(entityManager);
query.from(p).orderBy(p.price.price.asc().limit(20));
我没有在我的程序中使用过 JPA EntityManager,所以我不知道该怎么做。到目前为止,我只完成了这样的查询,并且它们在没有任何 EntityManager 的情况下工作得很好。
public static Predicate productName(String searchTerm){
QProduct product = QProduct.product;
return product.name.startsWithIgnoreCase(searchTerm);
}
我只是将该谓词传递给 Spring DATA JPA 提供的方法。我怎样才能用我以前的谓词这样的风格来解决我上面描述的问题?
【问题讨论】:
标签: jpa spring-data-jpa querydsl