升级框架版本后spring-data-elasticsearch repository操作报错

java.lang.NoSuchFieldError: INDEX_CONTENT_TYPE

	at org.springframework.data.elasticsearch.core.RequestFactory.indexRequest(RequestFactory.java:623)
	at org.springframework.data.elasticsearch.core.RequestFactory.lambda$bulkRequest$1(RequestFactory.java:248)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at org.springframework.data.elasticsearch.core.RequestFactory.bulkRequest(RequestFactory.java:245)

原因是springboot版本和spring-data-elasticsearch版本不对应
springboot:2.6.7
spring-data-elasticsearch:4.4.0

解决:

将spring-data-elasticsearch版本降低到4.3.4就好了

  <dependency>
      <groupId>org.springframework.data</groupId>
       <artifactId>spring-data-elasticsearch</artifactId>
       <version>4.3.4</version>
  </dependency>

import com.lyh.api.entity.article.Hotel;
import org.springframework.data.repository.PagingAndSortingRepository;


public interface HotelRepository extends PagingAndSortingRepository<Hotel, Integer> {
}

 @Autowired
 HotelRepository repository;

   @Test
    public void test5 (){
        List<Hotel> hotels = hotelService.getAllList();
        for (Hotel h:hotels
             ) {
            h.setSsuggest(new Completion(Arrays.asList(h.getBrand(),h.getBusiness()).toArray(new String[Arrays.asList(h.getBrand(),h.getBusiness()).size()])));
        }

        repository.saveAll(hotels);

    }

怎么荔枝

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐