猿问

如何在 Spring Boot 中使存储库 findBy() 具有多个字段?

我想在 Spring Boot java 应用程序中创建 restcontroller findbyProductIdandYear,但出现错误,如何以很好的方式实现它?


这是我的模型:


   @Entity

   @Table(name="view_disbursement_by_project")

   public class ViewDisbursement {


@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name="id")

private int id;


@Column(name="project_id")

private String projectId;


@Column(name="stage")

private String stage;


@Column(name="no")

private Integer no;


@Column(name="months")

private Integer months;


@Column(name="years")

private Integer years;


@Column(name="count")

private Integer count;


public int getId() {

    return id;

}


public void setId(int id) {

    this.id = id;

}


public String getProject_id() {

    return projectId;

}


public void setProject_id(String project_id) {

    this.projectId = project_id;

}


public String getStage() {

    return stage;

}


public void setStage(String stage) {

    this.stage = stage;

}


public Integer getNo() {

    return no;

}


public void setNo(Integer no) {

    this.no = no;

}


public String getProjectId() {

    return projectId;

}


public void setProjectId(String projectId) {

    this.projectId = projectId;

}


public Integer getMonths() {

    return months;

}


public void setMonths(Integer months) {

    this.months = months;

}


public Integer getYears() {

    return years;

}


public void setYears(Integer years) {

    this.years = years;

}


public Integer getCount() {

    return count;

}


public void setCount(Integer count) {

    this.count = count;

}


    }

这是我的存储库:


    @Repository

    public interface ViewDisbursementRepository extends 

    JpaRepository<ViewDisbursement, Integer> {


List<ViewDisbursement> findByProjectIdandYear(String projectId, 

    Integer years);


    }



白衣非少年
浏览 125回答 2
2回答

元芳怎么了

您的字段名称是:@Column(name="years") private&nbsp;Integer&nbsp;years;你有同样的适当的吸气剂和吸气剂。并且您在存储库中使用查询方法为:List<ViewDisbursement>&nbsp;findByProjectIdandYear(String&nbsp;projectId,&nbsp;Integer&nbsp;years);findByProjectIdAndYears最后应该是一个's'。然后只有它会匹配字段名称。还有'and'而不是'And'。

慕莱坞森

使用findByProductIdAndYears(String projectId, Integer years)当对多个参数使用 findBy 时,应该使用 And 来完成,我们必须保留 A 而不是 a。我们必须使用实体中定义的名称(因为这里我们有 Year,应该是 Years)例如@Entityprivate String productId;findById(String id) //wiil not workfindByProductId(String id) //work @Repository    public interface ViewDisbursementRepository extends JpaRepository<ViewDisbursement, Integer> {    List<ViewDisbursement> findByProjectIdAndYears(String projectId, Integer years);    }除了和/或带有谓词 IsStartingWith、StartingWith、StartsWith、IsEndingWith"、EndingWith、EndsWith、IsNotContaining、NotContaining、NotContains、IsContaining、Containing、包含这些查询的相应参数的派生查询将被清理。
随时随地看视频慕课网APP

相关分类

Java
我要回答