我目前在使用Jhipster和MongoDB的项目中。
我将此类作为一个实体:
@Document(collection = "product")
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private String id;
@NotNull
@Field("name")
private String name;
@Field("description")
private String description;
@NotNull
@Field("quantity")
private Integer quantity;
@NotNull
@Field("price")
private Double price;
@NotNull
@Field("grade")
private Double grade;
//Getters/Setters/Other Stuff
}
现在,我想执行自己的查询,以便按某些过滤器(名称,等级,价格)搜索产品,但我不想为每种过滤器类型组合编写一种方法。
这是我的ProductRepository的外观:
@Repository
public interface ProductRepository extends MongoRepository<Product, String> {
Page<Product> findAllByCategories(Pageable pageable, String categories);
Page<Product> findAllByIdIn(Pageable pageable, List<String> id);
Page<Product> findByNameIgnoreCaseContaining(Pageable pageable, String name);
}
如您所见,我已经编写了一些自定义方法来获取符合某些基本条件的产品。
我的问题是:有没有一种方法可以使用存储库来按某些标准(名称+价格或名称+价格+等级)进行研究,而无需编写许多方法? (也许有Criteria对象?)
谢谢您的回答