小编Dan*_*iva的帖子

Spring Data ElasticsearchCrudRepository无法识别参数

我有一个带有以下变量的@Document"Project"类:

    @Document(indexName = "project-index")
    public class Project {
    ...
        @JsonProperty("import_id")
        private Long importId;

        private String title;
   ...
    //getters and setters
    }
Run Code Online (Sandbox Code Playgroud)

我的JSON如下所示

    {
       "_id" : ObjectId("5269fd92e4b0c74e42976c91"),
    ...
        "import_id" : NumberLong(1),
         "title" : "Something",
    ...
    }
Run Code Online (Sandbox Code Playgroud)

我的@Repository类就像:

    @Repository
    public interface ProjectRepository extends ElasticsearchCrudRepository<Project, String>{
        Page<Project> findByImportId(Long importId, Pageable page);
        Page<Project> findByTitleLike(String title, Pageable page);
    }
Run Code Online (Sandbox Code Playgroud)

问题是,findByImportId没有得到任何数据,而findByTitleLike工作正常,让我获取数据,我试着用不同的配置,但目前看来,SpringData不解决这有外地的IMPORT_ID搜索,即使它有@ JsonProperty已配置.此外,我试图改变变量名IMPORT_ID(也getter和setter),但在这种情况下,当我试图用findByImport_Id,findByImport_id,findByImport__Id或findByImport__id在运行时出现错误.

我知道如何将带有下划线的db变量映射到以后可以被ElasticsearchCrudRepository识别的java变量?

谢谢

elasticsearch spring-data

5
推荐指数
1
解决办法
667
查看次数

标签 统计

elasticsearch ×1

spring-data ×1