以下是我的用户模型
@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);
}
上述方法给出错误
首次找不到用户类型
的属性
所以我想知道如何使用包含下划线的字段名来查询
答案 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);
}
如果你知道其他方式,请评论我。