3

Я не уверен, почему это происходит! У меня есть класс, который используется весной data elasticsearch и spring data jpa, но когда я пытаюсь запустить мое приложение, я получаю сообщение об ошибке.весна данные JPA & spring данные elasticsearch; Не найдено индекса свойств для типа?

Error creating bean with name 'articleSearch': 
Invocation of init method failed; nested exception is 
org.springframework.data.mapping.PropertyReferenceException: 
No property index found for type Article! 

Caused by: org.springframework.data.mapping.PropertyReferenceException: 
No property index found for type Article! 
    at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:77) ~[spring-data-commons-1.11.4.RELEASE.jar:na] 

У меня есть следующий класс приложения:

@SpringBootApplication 
@EnableAsync 
@ComponentScan(basePackages = {"com.article.models", "com.user"}) 
public class ArticleApplication { 

И следующий elasticsearch конфигурации:

@Configuration 
@EnableElasticsearchRepositories(basePackages = "com.article.search") 
public class ElasticSearchConfiguration { 
    @Resource 
    private Environment environment; 

    @Bean 
    public Client client() { 
     TransportClient client = new TransportClient(); 
     TransportAddress address = new InetSocketTransportAddress(environment.getProperty("elasticsearch.host"), Integer.parseInt(environment.getProperty("elasticsearch.port"))); 
     client.addTransportAddress(address); 
     return client; 
    } 

    @Bean 
    public ElasticsearchOperations elasticsearchTemplate() { 
     return new ElasticsearchTemplate(client()); 
    } 
} 

Это, как я установки моя модель класса:

@Entity 
@Table(name="article") 
@Document(indexName="article", type="articles") 

public class Article implements Serializable { 

У меня есть пакет поиск, который расширяет elasticsearchrepository, например, так:

public interface ArticleSearch extends ElasticsearchRepository<Article, String> { 

Я пытаюсь autowire класс articlesearch внутри другого сервиса, который вызывает произойти ошибка:

@Autowired 
ArticleSearch articleSearch; 

Что мне здесь не хватает ?! Я думаю, это немного сложнее при попытке использовать data-jpa + data-elasticsearch.

+0

can u показать весь код класса Article? – xierui

+0

Это стандартный класс спящего режима с аннотациями @ column. Я не добавил никаких аннотаций elasticsearch @xierui – James111

+0

Я видел ошибку раньше. Я думаю, вы могли сначала проверить методы в репозитории или запросах. Некоторые методы, такие как «findByIndex», будут иметь ошибку. – xierui

ответ

1

Я узнал, почему это происходит. Я не уверен, почему, но весна, похоже, не собирала мой класс конфигурации ElasticSearchConfiguration!

Так что я просто переместил все содержимое из этого и сбросил его в моем основном классе приложения (где все остальные мои настройки).

Я также удален компонент сканирования & добавили enablejparepository + enableelasticsearchrepository аннотации к моему основному классу. Вот как это выглядит сейчас:

@SpringBootApplication 
@EnableAsync 
@EnableElasticsearchRepositories(basePackages = "com.article.search") 
@EnableJpaRepositories(basePackages = {"com.article.dao", "com.user.dao"}) 
public class ArticleApplication { 
Смежные вопросы