在java中从列表中获取一行而不是三行?
我遇到了一个问题,我有一个简单的API,我在其中获取数据,在我的数据库中,我有3行指示rateType。因此,使用下面的代码,当我使用localhost:8080/myapp/salaries/1234执行GET请求时,我得到了我的行,但它只给出了数据库的第一行在java中从列表中获取一行而不是三行?,java,spring-boot,spring-restcontroller,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 Stri
@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:
]要进行汇总,在spring数据中,您可以使用
findBy
加上可以作为条件的字段,当然您可以有多个条件,如:findbyfield1和field2
等。。
你可以找到更多
例如,您可以执行以下操作:
@Repository // you can remove the annotation
public interface SalaryRepository extends CrudRepository<Salary, String> {
List<Salary> findByJobClassCd(String jobClassCd);
List<Salary> findByRateType(String rateType);
}
@Repository//您可以删除注释
公共接口SalaryRepository扩展了Crudepository{
列表findByJobClassCd(字符串jobClassCd);
列表findByRateType(字符串速率类型);
}
PS:然后在业务层,您可以将列表转换为流,或者将列表转换为汇总,在spring数据中,您可以使用
findBy
加上可以作为条件的字段,当然,您可以有多个条件,如:findbyfield1和field2
等。。
你可以找到更多
例如,您可以执行以下操作:
@Repository // you can remove the annotation
public interface SalaryRepository extends CrudRepository<Salary, String> {
List<Salary> findByJobClassCd(String jobClassCd);
List<Salary> findByRateType(String rateType);
}
@Repository//您可以删除注释
公共接口SalaryRepository扩展了Crudepository{
列表findByJobClassCd(字符串jobClassCd);
列表findByRateType(字符串速率类型);
}
PS:然后在业务层中,您可以将列表转换为流,或者jobClassCd的实体映射引用一个@Id,它将“禁用”具有相同值的其他记录。将“rateType”包含到复合Id中,或者使用一个(单独的列)基于排序的@IdjobClassCd的实体映射引用一个@Id,该@Id将“禁用”具有相同值的其他记录。将“rateType”包含在复合Id中,或者使用一个(单独的列)基于排序的@Id您的查询在哪里?请查看更新的问题,并提供代码-以便您更好地理解它。不介意在界面上共享显示逻辑,您必须使用类似于
ListfindByRateType(String rateType)
的方法;然后,在该服务中,如果您愿意,您可以将列表转换为流:)显示逻辑是什么意思,@Jayr?您的查询在哪里?请查看更新的问题以及提供的代码-以便您更好地理解它。不介意在您的界面上共享显示逻辑,您必须具有类似于ListfindByRateType(String rateType)
的方法;然后在服务中,您可以将列表转换为流,如果您愿意:)显示逻辑是什么意思,@Jayr?然后在我的薪水服务中,我可以执行公共列表findByRateType(String rateType)
?下面的实现与我对retrieveSalary所做的一样?在retrieveAllSalaries()方法中,您可以执行:salaryRepository.findByRateType(param.stream()
然后在我的薪水服务中-我可以做公共列表findByRateType(String rateType)
?下面的实现与我对retrieveSalary所做的一样?在retrieveAllSalaries()方法中,您可以执行:salaryRepository.findByRateType(param.stream()代码>