从 java 的列表中获取一行而不是 3 行?
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;
}
JsonResults:
[
{
"jobClassCd": "1234",
"jobClassTitle": "ADMIN",
"rateType": "Annual",
"step1": " 55.00",
"step2": " 55.00",
"step3": " 55.00",
"step4": " 55.00",
"step5": " 55.00"
},
{
"jobClassCd": "1234",
"jobClassTitle": "ADMIN",
"rateType": "Annual",
"step1": " 55.00",
"step2": " 55.00",
"step3": " 55.00",
"step4": " 55.00",
"step5": " 55.00"
},
{
"jobClassCd": "1234",
"jobClassTitle": "ADMIN",
"rateType": "Annual",
"step1": " 55.00",
"step2": " 55.00",
"step3": " 55.00",
"step4": " 55.00",
"step5": " 55.00"
}
]
为了求和,在 spring 数据中,您可以使用 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:然后在业务层可以把list转成stream或者else
jobClassCd 的实体映射引用了一个@Id,它将'mute' 具有相同值的其他记录。要么将 'rateType' 包含到复合 Id 中,要么有一个(单独的列)基于 @Id
排序
我遇到一个问题,我有一个简单的 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": " 55.00",
"step2": " 55.00",
"step3": " 55.00",
"step4": " 55.00",
"step5": " 55.00"
},
{
"jobClassCd": "1234",
"jobClassTitle": "ADMIN",
"rateType": "Annual",
"step1": " 55.00",
"step2": " 55.00",
"step3": " 55.00",
"step4": " 55.00",
"step5": " 55.00"
},
{
"jobClassCd": "1234",
"jobClassTitle": "ADMIN",
"rateType": "Annual",
"step1": " 55.00",
"step2": " 55.00",
"step3": " 55.00",
"step4": " 55.00",
"step5": " 55.00"
}
]
为了求和,在 spring 数据中,您可以使用 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:然后在业务层可以把list转成stream或者else
jobClassCd 的实体映射引用了一个@Id,它将'mute' 具有相同值的其他记录。要么将 'rateType' 包含到复合 Id 中,要么有一个(单独的列)基于 @Id
排序