我有一个实体(id,created_date)。我想在我的JPARepository中创建一个方法,从现在起返回最近的行。CreatedDate是ZonedDateTime。我创建了下一个方法(参数是ZonedTimeDate.now()):
findTopByCreatedDateBefore (返回第一个创建的行)
findFirstByCreatedDateBefore (返回第一个创建的行(为什么相同?)
(返回上次创建的行)
(返回最后创建的行(为什么相同?)
最后两个还我想要的东西,但它是最好的方式使用它们?为什么前两个返回相同的结果?
发布于 2017-03-21 13:34:23
我只是把PageRequest作为findAll的参数,其中页面是1,pageSize是1,order是DESC "createdDate“。
发布于 2016-01-12 05:54:13
因为关键字Top和First都将结果限制为其后面的可选数字,默认为1。因此,它们只定义要返回的元素数,而不是隐式排序--主要是因为不存在排序,除非明确指定排序。
在没有任何排序语义的情况下,不能定义top和first,因为除非指定排序选项,否则大多数存储无法保证结果的任何排序。因此,元素的顺序甚至可能因每次方法调用而有所不同。
所以在你给出的例子中,前两种方法将结果限制在一个参数上。
https://stackoverflow.com/questions/34727986
复制相似问题