[英]Getting one single row from list in java instead of 3 rows?
我遇到的一個問題是,我有一個簡單的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;
}
Json結果:
[
{
"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"
}
]
總結一下,在春季數據中,您可以使用findBy
加上可以作為條件的字段,當然您可以有多個條件,例如: findByField1AndField2
等。您可以在此處找到更多信息
以您為例,您可以執行以下操作:
@Repository // you can remove the annotation
public interface SalaryRepository extends CrudRepository<Salary, String> {
List<Salary> findByJobClassCd(String jobClassCd);
List<Salary> findByRateType(String rateType);
}
PS:然后在業務層中,您可以將列表轉換為流,否則
jobClassCd的實體映射引用一個@Id,它將“靜音”具有相同值的其他記錄。 可以將'rateType'包含在復合ID中,也可以基於@Id排序(單獨的列)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.