Выполнить запрос весной API - PullRequest
0 голосов
/ 28 мая 2020

Привет, команда stackoverflow,

Я пытаюсь вычислить длительность консоли для данной трески. и получал ошибку, говоря, что id_client не найден в resultSet. Кто-нибудь знает, как это исправить?

Приведенный ниже код содержит 3 разных части: модель, репозиторий и контроллер.

в моей модели D1:

import javax.persistence.Column;
import javax.persistence.Id;

@Entity(name = "tmp.c1")
@Table(name = "c1", schema = "tmp")
public class D1 {

  @Id
  @Column(name = "id_client")
  private BigDecimal id_contrats;
  @Column(name = "cod")
  private BigDecimal cod;
  @Column(name = "name_client")
  private OffsetDateTime dat;
  @Column(name = "phone_client")
  private long phone_client;
  @Column(name = "funct")
  private string funct;
  @Column(name = "beg_consu")
  private OffsetDateTime beg_consu;
  @Column(name = "end_consu")
  private OffsetDateTime end_consu;

}

В репозитории D1

import java.math.BigDecimal;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import io.A1.B1.api.P1.data.model.D1;

public interface D1Repository  {

  @Query(value = "SELECT (end_consu - beg_consu) FROM #{#entityName}" )
  T getConso(@Param("cod") BigDecimal cod);

}



}

1 Ответ

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

Вы забыли расширить свой интерфейс:

...
public interface D1Repository extends JpaRepository<D1, BigDecimal> {

    @Query(value = "SELECT (end_consu - beg_consu) FROM #{#entityName}" )
    T getConso(@Param("cod") BigDecimal cod);

}
...

И в качестве рекомендации было бы лучше использовать long вместо bigdecimal в качестве значения идентификатора. Более эффективно использовать наименьшее значение, которое может охватывать наибольшее возможное значение. Вы бы не использовали цистерну для перевозки литра воды, верно?

С уважением.

...