Запрос результата Spring JPA с правильным количеством строк, но с пустыми полями - PullRequest
0 голосов
/ 06 мая 2020

Я новичок в Spring и JPA, и я пытаюсь получить список элементов с помощью запроса JPA, но я получаю список с нужным количеством строк (тот же запрос в sqldeveloper возвращает такое же количество строк), но со всеми полями с нулевым значением.

Вот мой код для Entity:

@Entity
@IdClass(MTINPTEPK.class)
@Table(name = "MTIN_PTE")
@NamedNativeQueries({
    @NamedNativeQuery(resultClass=MTINPTE.class,name = "MTINPTE.findByFechas", query=
            "SELECT "
            + "' ' AS CAMPO1, EEXIDE, ' ' AS CAMPO2, ' ' AS CAMPO3, ' ' AS CAMPO4, EEXNAC,
...

public class MTINPTE {


    @Column(name="CAMPO1") 
    private String campo1;
    @Id
    @Column(name="EEXIDE")
    private String eexide;

    @Column(name="CAMPO2")
    private String campo2;

    @Column(name="CAMPO3")
    private String campo3;

    @Column(name="CAMPO4")
    private String campo4;
    @Id
    @Column(name="EEXNAC")
    private String eexnac;

PK

 public class MTINPTEPK implements Serializable{

        private String campo1;
        private String eexide;
        private String campo2;
        private String campo3;
        private String campo4;
        private String eexnac;
...

Репо

public interface MTINPTERepository extends CrudRepository<MTINPTE, MTINPTEPK> 
{
    @Query
    public List<MTINPTE> findByFechas(Date fechaDesde, Date fechaHasta);    

}

И сервис

List<MTINPTE> listaMTINPTE = mtinPteRepository.findByFechas(fechaInicio, fechaFin);

Ну, когда я пытаюсь выполнить findByFechas, я получаю нужное количество строк в listaMTINPTE.size (), но поля каждого элемента нулевые.

Можете ли вы мне помочь?

Спасибо !!.

1 Ответ

1 голос
/ 06 мая 2020

Вы выполняете свой NamedNativeQuery. При этом вы возвращаете все столбцы пустыми ('' как имя столбца).

@NamedNativeQueries({
    @NamedNativeQuery(resultClass=MTINPTE.class,name = "MTINPTE.findByFechas", query=
            "SELECT "
            + "' ' AS CAMPO1, EEXIDE, ' ' AS CAMPO2, ' ' AS CAMPO3, ' ' AS CAMPO4, EEXNAC,

Ваш код не завершен (имя таблицы в этом запросе отсутствует).

Просто удалите NamedNativeQuery и создайте чистое отображение таблицы базы данных.

...