Как получить недавнюю запись по полю и упорядочить по дате (сложный запрос)? - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь написать метод в весенних данных, чтобы получить последние записи по text и упорядочить по updateDate .

Моя сущность выглядит так:

@Entity
public class Command {

    @Id
    @GeneratedValue
    private Long id;

    @Column(nullable = false)
    private String text;

    // epoch date
    private Long updateDate;

    /* Getters and Setters */
}

И это репозиторий:

public interface CommandRepository extends JpaRepository<Command, Long> {
    Command findByTextAndTopByUpdateDateDesc(String text);
}

Конечно, метод поиска по тексту должен дать мне больше, чем одна запись, но при фильтрации по верхней дате получится только одна запись!

метод, приведенный выше, возвращает следующую ошибку:

Причина: org.springframework.data.mapping.PropertyReferenceException: не найдено свойство TopByUpdateDateDesc для типа Command! в org.springframework.data.mapping.PropertyPath. (PropertyPath.java:94)

Я попытался проверить некоторые стековые потоки, чтобы найти какое-либо решение, но нада!

Есть ли какое-либорешение в этом случае, или я должен использовать собственный запрос?

1 Ответ

1 голос
/ 07 октября 2019

Порядок в вашем методе запроса неправильный. Сначала вам нужно ограничиться (Top / First), прежде чем выполнять деталь where, и вы заканчиваете заказ. Это также то, что говорит вам ошибка, учитывая немного загадочно.

Вместо findByTextAndTopByUpdateDateDesc вы должны использовать что-то вроде findFirstByTextOrderByUpdateDateDesc.

Порядок и т. Д. Объясняется в документации Spring Data JPA .

...