jpa存储库findBy方法签名有多个或运算符?

时间:2018-05-26 07:14:39

标签: java spring spring-data-jpa thymeleaf

我有像这样的产品的实体类:

@Entity
public class Product {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Integer ID_product;

  @NotNull
  private String prodName;

  @NotNull
  private String prodDesc;

  @NotNull
  private Integer price;

  @NotNull
  private String prodBrand;

  @NotNull
  private String prodImage;

  @ManyToOne
  private Category category;

我想让控制器看起来像这样:

List<Product> productList = productRepository.findByProdNameOrProdBrandContains(search);
model.addAttribute("products" , productList);

如果我想搜索prodName或prodBrand的关键字,如何在我的存储库中编写findBy方法?我想象这样的事情:

List<Product> findByProdNameOrProdBrand(String prodName || String prodBrand);

我是否必须创建不同的功能/模型或其他东西,如果是这样,我如何在我的百里香中使用两种功能/模型?任何帮助表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:0)

只需在存储库中创建以下方法:

List<Product> findByProdNameOrProdBrand(String prodName, String prodBrand);

但我建议您在超过3个条件的查询时切换到Sepcification<T>