gpt4 book ai didi

Elasticsearch 和 SpringData : FindAll and OrderBy

转载 作者:行者123 更新时间:2023-12-02 22:24:52 26 4
gpt4 key购买 nike

我需要获取所有文件,按某个字段排序(在我的例子中是 parent)。

在我的 ItemRepository我添加了以下签名:

public List<Item> findAllOrderByParent();

但是通过调用它,我得到了一个

org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is
org.springframework.data.repository.query.ParameterOutOfBoundsException:
Invalid parameter index! You seem to have declare too little query method parameters!

同样推迟AscDesc到方法名称。

我在某处读到正确的语法应该如下(注意 By 之后的额外 findAll ):

public List<Item> findAllByOrderByParent();

在这里我得到一个

NullPointerException
Caused by:
java.lang.NullPointerException
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.count(ElasticsearchTemplate.java:333)
at org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery.execute(ElasticsearchPartQuery.java:54)
...

我排除了其他问题,因为声明了一个类似于 public List<Item> findByNameOrderByParent(); 的方法一切正常。

你有继续的想法吗?

谢谢

最佳答案

这可能有点晚了,但由于问题仍然存在,为了解决这个问题,我只是使用了 findAll 方法,使用 Sort 对象作为参数:

List<Item> findAll(Sort sort);

你称它为:

List<Item> items = this.itemRepository.findAll(new Sort(new Sort.Order(Sort.Direction.DESC, "name")));

您可以将“名称”属性提取为常量或使服务的 listItems 方法支持动态排序并将排序字段作为参数发送。

你也可以看看这篇文章:http://maciejwalkowiak.pl/blog/2012/05/09/sorting-spring-data-mongodb-collections-using-orderby/

关于 Elasticsearch 和 SpringData : FindAll and OrderBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30821617/

26 4 0
文章推荐: elasticsearch - Elasticsearch按类型排序
文章推荐: c# - 格式化没有 string.Format 的字符串?
文章推荐: css - 如何固定bootstrap的 `