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

3
以下是我的用户模型:
@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);

}

上述方法会出现以下错误:

找不到User类型的first属性

因此,我想知道如何使用包含下划线的字段名进行查询。

2个回答

1
@JsonProperty("first_name")
private String firstName;

在 @Query 中,您可以使用 first_name 如此描述

0

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

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

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

}

如果你知道其他的方法,请在评论区告诉我。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接