一、问题起因:

错误信息:org.springframework.data.mapping.PropertyReferenceException: No property … ! Did you mean …?

 

如下图所示,springboot整合es时,在es中的字段名称为大写,此时使用ElasticsearchRepository自动生成查询方法时是有问题的。因为生成的方法采用的是驼峰命名规则,如图中使用“findBySTORETIME”接口,则默认字段值为”sTORETIME”,但我们的字段却为”STORETIME”,所以产生错误!

二、处理方法:

在DAO接口层,接口名称上添加”@Query”注解,如下图所示:

 

@Query("{\"bool\" : {\"must\" : {\"term\" : {\"STORETIME\" : \"?0\"}}}}")  

注解中,规定了字段使用大写表示,则解决了上述问题。其中,"?0"代表第一个参数storetime,后面以此类推

 

 

@JsonProperty("DREREFERENCE")的使用,是为了将ES返回的字段内容与字段对应,否则返回字段默认为小写,是不能存储在bean中的

 

 

 

版权声明:本文为Arthemis-z原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Arthemis-z/p/12094937.html