Результаты запроса ограничивающего JPA Spring Data генерируют NumberFormatException - PullRequest
0 голосов
/ 23 мая 2018

У меня есть объект, для которого я хотел бы использовать JpaRepository

@Entity
@Table(name = "MESSAGE")
public class MessageEntity {

    @Id
    @Column(name = "ID")
    private Long id;
    @Column(name = "TRACE_ID", nullable = false)
    private String traceId;
    @Column(name = "REGISTRATION", nullable = false)
    private LocalDateTime registration;
}

В соответствии с документацией я должен иметь возможность получить первый результат, определив методНазовите его следующим образом:

public interface MessageJpaRepository extends JpaRepository<MessageEntity, Long> {
    MessageEntity getFirstByOrderByRegistrationDesc();
}

... и это работает.

Однако, когда я добавляю условие для фильтрации по параметру, выдается NumberFormatException.

public interface MessageJpaRepository extends JpaRepository<MessageEntity, Long> {
    // (OrderBy removed for simplicity)
    MessageEntity getFirstByTraceId(String traceId);
    MessageEntity getFirst1ByTraceId(String traceId);
}

Когда я вызываю этот метод с помощью messageJpaRepository.getFirstByTraceId("trace.id"), выводится следующее:

select TOP ?
  message0_.ID as ID1_0_,
  message0_.TRACE_ID as TRACE_ID2_0_,
  message0_.REGISTRATION_TIMESTAMP as REGISTRA3_0_
from Message message0_
where message0_.TRACE_ID = ?

параметр привязки 1 как [VARCHAR] - [trace.id]

Причина: org.h2.jdbc.JdbcSQLException: преобразование данныхошибка преобразования "trace.id";Оператор SQL:

Причина: java.lang.NumberFormatException: Для входной строки: "trace.id"

Изменение типа результата на Список также не работает.

Как объединить лимит с условием?

Примечание: Проблема, с которой я сталкиваюсь, заключается в том, что Hibernate ожидает 2 параметра:предел и условие.Но условие интерпретируется как предел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...