2

下面是我的用户模型

@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);

}

上述方法给出的错误是

没有首先找到用户类型的属性

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

4

2 回答 2

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

在@Query 中,您可以first_name 按照此处所述使用。

于 2018-06-25T18:52:16.343 回答
0

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

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

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

}

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

于 2021-03-16T02:45:42.967 回答