我遇到的一个问题是,我有一个简单的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"
}
]
答案 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进行排序(单独的列)