是否可以使用MongoDB
或任何其他文件在src/main/resources/data.sql
数据库中加载初始数据?
我了解data.sql
用于SQL
数据库,而MongoDB
是NOSQL
数据库。但只是想知道data.sql
数据库是否有NOSQL
的等价物。
在谷歌搜索时,我发现了这个SO链接(Spring Boot - Loading Initial Data),它正在寻找我正在寻找的东西,但它仍然不是一个独立的文件data.sql
。
答案 0 :(得分:3)
要加载初始数据,您可以使用像MongoBee
这样的数据库迁移工具在java中处理数据初始化是非常有用的选项。您只需要在弹簧引导和设置组件扫描中配置@Bean public Mongobee mongobee
以获取实际发生数据创建的数据ChangeLog。
答案 1 :(得分:2)
您可以在Spring Data MongoDB中使用存储库填充器。让我用Kotlin中的代码示例对此进行演示:
@Configuration
class TestApplicationConfig {
@Value("classpath:test_data.json")
private lateinit var testData: Resource
@Bean
@Autowired
fun repositoryPopulator(objectMapper: ObjectMapper): Jackson2RepositoryPopulatorFactoryBean {
val factory = Jackson2RepositoryPopulatorFactoryBean()
// inject your Jackson Object Mapper if you need to customize it:
factory.setMapper(objectMapper)
factory.setResources(arrayOf(testData))
return factory
}
}
将test_data.json
放入资源目录。
答案 2 :(得分:1)
您可以在json / xml中定义数据,并使用存储库的populator元素加载数据。