Mat*_*zak 8 java spring-boot reactive spring-data-r2dbc
我有一个简单的问题,是否可以使用 Spring Boot Data r2dbc for MySQL 或其他数据库自动生成表?在 JPA 中,我添加了 spring.jpa.hibernate.ddl-auto=update 并创建了表
这是我的pom:
<dependencies>
<dependency>
<groupId>org.springframework.boot.experimental</groupId>
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>dev.miku</groupId>
<artifactId>r2dbc-mysql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot.experimental</groupId>
<artifactId>spring-boot-test-autoconfigure-r2dbc</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.43.Final</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
我知道这不是确切的答案,但在 R2DBC 中创建表的唯一方法是利用databasePopulator:
@Bean
fun initializer(connectionFactory: ConnectionFactory) =
ConnectionFactoryInitializer().apply {
setConnectionFactory(connectionFactory)
setDatabasePopulator(CompositeDatabasePopulator()
.apply {
addPopulators(ResourceDatabasePopulator(FileSystemResource("src/test/resources/sql/init.sql")))
})
}
Run Code Online (Sandbox Code Playgroud)
它可以在测试期间派上用场。
| 归档时间: |
|
| 查看次数: |
965 次 |
| 最近记录: |