当前位置: 首页 > 面试题库 >

获取按Spring数据排序的最后记录

楚浩然
2023-03-14
问题内容

我正在尝试在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);

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



 类似资料:
  • 我能在表达式末尾不给出排序参数吗?因为我需要在over()函数中使用sort参数。 例子: 或sort inside over的表达式:,-#sort\n,#{#sort}。。 我仍然得到: JAVAlang.IllegalArgumentException:方法公共抽象java的查询验证失败。整型。。。方法的名称。。(int,int,int,org.springframework.data.do

  • 我在我的项目中遇到了一个麻烦,因此我将提供一个使用演示项目的例子。想象有两个实体:老师和学生。 有一个存储库和一个服务类: 最后,一个控制器类: 在UI上有一个教师表。 用户筛选出具有 ID 的教师 然而,实际结果是: Aliyah Wiggins有重复的记录。我还没有找到适当的方法来获得预期的结果,所以现在我认为搜索与一个实体相关的对象并按另一个实体中的属性排序是不对的。演示项目可在此处获得。

  • 问题内容: 我有一个SQLite数据库,需要执行以下操作:仅保留最后N条记录,按日期排序。你是怎样做的? 问题答案: 删除除最新的10条记录外的所有记录。

  • 我遇到了一个问题,我需要将两列实体相乘来排序,为了想象,实体是: 我不能使用命名查询,因为我的查询基于用户输入进行了大量筛选(不能将where子句放入查询,因为如果用户没有选择任何值,where子句不能只在查询中)。 为了简单点。我需要类似findAll(谓词,Pageable)的东西,但我需要强制查询按“amount*unitPrice”对其进行排序,但也要保持我的Preditate(过滤器)和

  • 问题内容: 我正在使用Firebase,直到最近我都没有按字母顺序获取数据的问题。我从来没有使用过查询,我总是只使用数据快照并逐一对其进行排序。最近,在 snapVal中 ,数据并不总是按字母顺序 排列 。如何做到这一点,以便获得按字母顺序排序的数据的snapVal,就像数据库快照中的快照一样? 真实示例:有4条消息,id1-id4(按此顺序)。它们包含消息“ 1”-“ 4”。快照看起来正确。但是

  • 我使用的是Spring数据JpaRepository,我发现它非常容易使用。我实际上需要所有这些功能——分页、排序、过滤。不幸的是,有一件令人讨厌的事情似乎迫使我退回到普通JPA的使用上来。 我需要按关联集合的大小订购。例如,我有: 我必须按bes排序。size() 是否有办法以某种方式自定义排序,仍然利用分页、过滤和其他Spring Data的强大功能?