Получение одной строки из списка в Java вместо 3 строк? - PullRequest
1 голос
/ 21 мая 2019

Я столкнулся с проблемой, когда у меня есть простой API, где я получаю данные, и внутри моей базы данных у меня есть 3 строки, которые указывают на rateType.Итак, с моим кодом ниже, когда я делаю GET-запрос с localhost: 8080 / myapp / salaries / 1234, я получаю свои строки, но он просто дает мне только первую строку моей базы данных.

@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"
}

]

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Отображение сущности для jobClassCd ссылается на @Id, который «отключает» другие записи с тем же значением. Либо включите 'rateType' в составной Id, либо используйте (отдельный столбец) последовательность на основе @ Id

0 голосов
/ 21 мая 2019

Чтобы подвести итог, в весенних данных вы можете использовать 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: Затем на бизнес-уровне вы можете преобразовать список в поток или иначе

...