Как динамически создать SolrRepositoryFactory с другим хостом solr? - PullRequest
0 голосов
/ 17 января 2019

Вместо того чтобы позволить Spring создавать экземпляр репозитория mongodb "OrderRepository", его можно динамически создавать следующим образом:

MongoCredential mongoCredential = MongoCredential.createCredential(
                    dbUsername, "admin", dbPassword.toCharArray());
MongoClient mongoClient = new MongoClient(new ServerAddress(dbHost, Integer.valueOf(dbPort)), mongoCredential, new MongoClientOptions.Builder().build());
MongoTemplate mongoOps = new MongoTemplate(mongoClient, dbName);
OrderRepository repository = new MongoRepositoryFactory(mongoOps).getRepository(OrderRepository.class);

Это означает, что при запуске не требуется указывать соединение с БД.

Я пытался реализовать тот же шаблон для SolrCrudRepository, но безрезультатно.

SolrClient solrClient = new HttpSolrClient.Builder(host).build();
SolrTemplate solrTemplate = new SolrTemplate(solrClient);
solrRepositoryFactory = new SolrRepositoryFactory(solrTemplate );
OrderRepository repository = solrRepositoryFactory.getRepository(OrderRepository.class);

Выше не работает. SolrTemplate или solrRepositoryFactory не созданы должным образом.

...