使用包含下划线的字段使用Spring Data Elasticsearch查询Elasticsearch

时间:2018-05-25 11:35:25

标签: spring spring-data-elasticsearch

以下是我的用户模型

@Document(indexName="users",type="records")
public class User{
    private String id;
    private String first_name;
    private String last_name;
}

以下是我的存储库

@Repository
public interface UserSearchRepository extends ElasticsearchRepository<User,String> {

    public List<User> findAllByFirst_name(String first_name);

}

上述方法给出错误

  

首次找不到用户类型

的属性

所以我想知道如何使用包含下划线的字段名来查询

2 个答案:

答案 0 :(得分:1)

anaconda2

在@Query中,您可以使用@JsonProperty("first_name") private String firstName; as described here

答案 1 :(得分:0)

@JsonProperty 不起作用。 我认为唯一的解决方案是使用@Query 注释

@Repository 
public interface SampleRepository extends ElasticsearchRepository<SampleData, String> {

@Query("{\"bool\": {\"must\": {\"match\": {\"name_field\": \"?0\"}}}}")
List<SampleData> findByName(String name);

}

如果你知道其他方式,请评论我。