gpt4 book ai didi

spring-data - 我正在尝试使用动态排序,但检索到的列表未排序

转载 作者:行者123 更新时间:2023-12-02 21:20:25 25 4
gpt4 key购买 nike

public List<Series> findSeries(int period, String fieldname, int num) {
TypedQuery<Series> query = em.createQuery(
"select s from Series s where s.period = ?1 order by ?2",
Series.class);
query.setParameter(1, period);
query.setParameter(2, fieldname);
query.setMaxResults(num);
return query.getResultList();
}

这是我正在使用的方法。我认为 order by 甚至没有被执行,即使我传递了不正确的字段名,它也不会给出任何错误。

最佳答案

当涉及到动态限制和排序时,最好使用 PagingAndSortingRepository,所以现在我的存储库扩展了这个存储库。我可以简单地使用 JPA 标准查询,如下所示。

如果您想了解有关 JPA 标准查询的更多信息,我发现这非常有帮助 http://docs.spring.io/spring-data/data-jpa/docs/1.0.x/reference/html/#jpa.query-methods.query-creation

 @Repository
public interface SeriesRepository extends PagingAndSortingRepository<Series,Long>{
List<Series> findByPeriod(int period, Pageable pageable);
}

然后当我从我的 dao 调用这个方法时,我可以实例化 PageRequest,它是 Pageable 的实现之一。我可以向该实例添加限制和排序顺序。

public List<Series> getSeriesByFilter(int period, String fieldname, int num) {
Sort sort = new Sort(Sort.Direction.ASC, fieldname);
Pageable pageable = new PageRequest(0, num, sort);
return seriesRepo.findByPeriod(period, pageable);
}

关于spring-data - 我正在尝试使用动态排序,但检索到的列表未排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com