获取Spring Data上数据排序的最后一条记录


问题内容

我正在尝试在Spring数据存储库中定义一个方法来获取按日期排序的表上的最后一条记录。这是我的实体:

@Entity
public class News {

    @Id
    @GeneratedValue
    private Long id;

    @Column(nullable = false)
    private String title;

    @Column(nullable = false)
    private String text;

    private Date publicationDate;

    /* Getters and Setters */
}

这是我的存储库:

public interface NewsRepository extends JpaRepository<News, Long> {
    List<News> findFirst5OrderByPublicationDateDesc();
}

如果我尝试使用启动项目,则会收到下一个错误:

原因:org.springframework.data.mapping.PropertyReferenceException:未找到类型为Date的属性desc!遍历的路径:News.publicationDate。

如果删除Desc,我将得到以下信息:

造成原因:java.util.NoSuchElementException

我做错了什么?


问题答案:

原来该方法的签名不正确。正确的是:

findFirst5ByOrderByPublicationDateDesc()

有点令人困惑,因为在官方样本中它们具有以下特征:

List<User> findTop10ByLastname(String lastname, Pageable pageable);

如您所见,只有一个,通常是一个。