从Java列表中获取一行而不是3行?

时间:2019-05-21 15:58:17

标签: java spring-boot spring-restcontroller

我遇到的一个问题是,我有一个简单的API,可以在其中获取数据,并且在数据库中,我有3行指示rateType。因此,在下面的代码中,当我使用localhost:8080 / myapp / salaries / 1234进行GET请求时,我得到了我的行,但它只给了我数据库的第一行。

@Entity
@Setter

public class Salary {

    @Id
    @Column(name = "JOB_CLASS_CD")
    @JsonSerialize
    private String jobClassCd;

    @Column(name = "JOB_CLASS_TITLE")
    @JsonSerialize
    private String jobClassTitle;

    @Column(name = "RATE_TYPE")
    @JsonSerialize
    private String rateType;

    @Column(name = "STEP_1")
    @JsonSerialize
    private String step1;

    @Column(name = "STEP_2")
    @JsonSerialize
    private String step2;

    @Column(name = "STEP_3")
    @JsonSerialize
    private String step3;

    @Column(name = "STEP_4")
    @JsonSerialize
    private String step4;

    @Column(name = "STEP_5")
    @JsonSerialize
    private String step5;

}
  

JsonResults

   [
{

    "jobClassCd": "1234",
     "jobClassTitle": "ADMIN",
      "rateType": "Annual",
    "step1": "  $5555.00",
    "step2": "  $5555.00",
    "step3": "  $5555.00",
    "step4": "  $5555.00",
    "step5": "  $5555.00"


},
{
   "jobClassCd": "1234",
     "jobClassTitle": "ADMIN",
      "rateType": "Annual",
    "step1": "  $5555.00",
    "step2": "  $5555.00",
    "step3": "  $5555.00",
    "step4": "  $5555.00",
    "step5": "  $5555.00"
},
{
   "jobClassCd": "1234",
     "jobClassTitle": "ADMIN",
      "rateType": "Annual",
    "step1": "  $5555.00",
    "step2": "  $5555.00",
    "step3": "  $5555.00",
    "step4": "  $5555.00",
    "step5": "  $5555.00"
}

]

2 个答案:

答案 0 :(得分:0)

要进行总结,可以在春季数据中使用findBy加上可以作为条件的字段,当然,您可以具有多个条件,例如:findByField1AndField2等。 您可以找到更多here

例如,您可以执行以下操作:

    @Repository // you can remove the annotation
    public interface SalaryRepository extends CrudRepository<Salary, String> {

        List<Salary> findByJobClassCd(String jobClassCd);

        List<Salary> findByRateType(String rateType);

    } 

PS:然后在业务层中,您可以将列表转换为流,否则

答案 1 :(得分:0)

jobClassCd的实体映射引用一个@Id,它将“静音”具有相同值的其他记录。将'rateType'包含在复合ID中,或者根据@Id进行排序(单独的列)