我有一个“产品”实体,包括“id”、“productName”和“price”。
我使用Angular ng-table实现了服务器端的分页和筛选。
我的客户端发送了一个JSON,如下:
我该如何使用jpaRepository实现这种动态查询?
我使用Angular ng-table实现了服务器端的分页和筛选。
我的客户端发送了一个JSON,如下:
"{"page":1,"sort":"DESC","orderBy":"productName","filter":{"productName":"test","price":300}}"
但可能是这样的
"{"page":1,"sort":"","orderBy":"","filter":{}}"
我该如何使用jpaRepository实现这种动态查询?
query = "select * FROM products WHERE 1=1 "
for (Map.Entry<String, String> filter : filters.entrySet()) {
String key = filter.getKey();
String value = filter.getValue();
query+= "AND " + " LIKE %" + value + "% "
}
if(!orderBy.isEmpty())
{
query.="ORDER BY " + orderBy + " ";
}
etc.
my IProductRepository.java
public interface IProduitRepository extends JpaRepository<Product, Long> {
@Query("select p from Produit p where p.price = :x")
public Page<Product> customFindByPrice(@Param("x") String name,Pageable p);
public Page<Product> findByPrice(double price, Pageable p);
}
那么我该如何使用JpaRepository实现动态搜索查询呢?
我知道predicate,但我不太理解如何在我的情况下使用它们。