Свойство для типа не найдено - PullRequest
0 голосов
/ 12 февраля 2019

При запуске моего кода для извлечения данных из Solr, он не компилируется с исключением:
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property findSubscriptions found for type Subscriptions!

Я не вижу несогласованности в именовании или пропущенном методе.Код для извлечения данных из Solr.Я уже создал документ, и Solr работает и работает на "http://localhost:8983/solr/"

1)

      @RestController
      public class SubscriptionsController {

      @Autowired
      SolrSubscriptionsRepository solrSubscriptionsRepository; 

      @GetMapping("/subscriptions/{subscriptionId}")
      public Subscriptions getSubscriptions(@PathVariable Long subscriptionId) {

        solrSubscriptionsRepository.findSubscriptions(subscriptionId);
        return solrSubscriptionsRepository.findSubscriptions(subscriptionId);


      }

2)

     @SolrDocument(collection= "Subscriptions")
     public class Subscriptions {

     @Id
     @Indexed(name="subscription_id", type="long")
     private Long subscriptionId;

     @Indexed(name="subscription_query", type="string")
     private String subscriptionQuery;

     @Indexed(name="subscription_type", type="string")
     private String subscriptionType;

     } 

3)

     public interface SolrSubscriptionsRepository extends 
     SolrCrudRepository<Subscriptions, Long>{

     Subscriptions findSubscriptions(Long subscriptionId);

     }

4)

      @Configuration
      @EnableSolrRepositories(basePackages="com.test.repository")
      @ComponentScan
      public class SolrConfig {

      @Value("spring.data.solr.host") String solrURL;

      @Bean
      public SolrClient solrClient() {
        return new HttpSolrClient.Builder(solrURL).build();
      }

      @Bean
      public SolrTemplate solrTemplate(SolrClient solrClient) throws Exception {
        return new SolrTemplate(solrClient);
        }
      }

5) application.properties
spring.data.solr.host=http://localhost:8983/solr/

1 Ответ

0 голосов
/ 12 февраля 2019

Решение1

@Autowired
  SolrSubscriptionsRepository solrSubscriptionsRepository; 

  @GetMapping("/subscriptions/{subscriptionId}")
  public Subscriptions getSubscriptions(@PathVariable Long subscriptionId) {

    solrSubscriptionsRepository.findSubscriptions(subscriptionId);
    return solrSubscriptionsRepository.findById(subscriptionId);
  }

Решение 2:

@Autowired
  SolrSubscriptionsRepository solrSubscriptionsRepository; 

  @GetMapping("/subscriptions/{subscriptionId}")
  public Subscriptions getSubscriptions(@PathVariable Long subscriptionId) {

    solrSubscriptionsRepository.findSubscriptions(subscriptionId);
    return solrSubscriptionsRepository.findBySubscriptionId(subscriptionId);
  }
public interface SolrSubscriptionsRepository extends SolrCrudRepository{
 Subscriptions findBySubscriptionId(Long subscriptionId);
 }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...