Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中从列表中获取一行而不是三行?_Java_Spring Boot_Spring Restcontroller - Fatal编程技术网

在java中从列表中获取一行而不是三行?

在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

我遇到了一个问题,我有一个简单的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:


]

要进行汇总,在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中,或者使用一个(单独的列)基于排序的@Id

jobClassCd的实体映射引用一个@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()