[英]spring data mongodb , use MongoRepository or MongoTemplate?
[英]Spring-Data: specify which MongoTemplate a MongoRepository should use
給出以下配置:
@Configuration
public class AppConfiguration {
@Bean
Mongo mongo() throws UnknownHostException {
return new Mongo("localhost");
}
@Bean(name = "MovieTemplate")
MongoTemplate beagleTemplate(Mongo mongo) {
return new MongoTemplate(mongo, "MovieDatabase");
}
@Bean(name = "AnotherTemplate")
MongoTemplate tmdbTemplate(Mongo mongo) {
return new MongoTemplate(mongo, "AnotherDatabase");
}
}
我需要一個存儲庫來訪問電影,看起來像這樣:
@Repository
public interface MoviesRepository extends
MongoRepository<ProductPages, String> {
... some method declarations to access movies ...
}
有注釋驅動的方式來告訴存儲庫使用哪個模板嗎? 如果沒有,還有什么可以解決的?
您必須在Configuration類上使用此注釋
@EnableMongoRepositories(
basePackages = {"com.yyy.dao.jpa", "com.xxx.dao.jpa"},
mongoTemplateRef = "MovieTemplate"
)
並配置此:
因此,您需要為每個Mongo Dao集及其相應的MongoTemplate提供一個配置類。
注意:如果您打算為每個模板使用不同的Mongo客戶端,則必須確保將適當的Mongo客戶端bean傳遞給MongoTemplate,例如使用Qualifier或與Mongo的方法名稱匹配的其他參數名稱。聲明為@Bean。
只是偶然發現了這個問題: Spring-data-mongodb在一個Mongo實例中連接到多個數據庫
除了解決這個問題,注解驅動的spring-data-mongodb(1.3.1.RELEASE)似乎根本沒有提供現成的解決方案:/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.