- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道 H2 有一个名为 DATABASE_TO_UPPER
的 bool 属性/设置,您至少可以在连接 URL 中设置,例如:;DATABASE_TO_UPPER=false
我想将其设置为 false,但在我的 Spring Boot 应用程序中,我在任何地方都没有显式拥有 H2 连接 URL。正如我在日志中看到的那样,隐式地肯定存在一个连接 URL:
o.s.j.d.e.EmbeddedDatabaseFactory: Shutting down embedded database:
url='jdbc:h2:mem:2fb4805b-f927-49b3-a786-2a2cac440f44;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false'
所以问题是,在这种情况下告诉 H2 禁用 DATABASE_TO_UPPER 的最简单方法是什么?使用 EmbeddedDatabaseBuilder
创建 H2 数据源时,我可以在代码中执行此操作(见下文)吗?或者也许在应用程序属性
中?
这就是 H2 数据库在代码中显式初始化的方式:
@Configuration
@EnableTransactionManagement
public class DataSourceConfig {
@Bean
public DataSource devDataSource() {
return new EmbeddedDatabaseBuilder()
.generateUniqueName(true)
.setType(EmbeddedDatabaseType.H2)
.setScriptEncoding("UTF-8")
.ignoreFailedDrops(true)
.addScripts("db/init.sql", "db/schema.sql", "db/test_data.sql")
.build();
}
}
另外,我告诉 JPA/Hibernate 不要 auto-generate embedded database (如果没有这个,就会出现启动两个内存数据库的问题):
spring.jpa.generate-ddl=false
spring.jpa.hibernate.ddl-auto=none
最佳答案
您无法使用generateUniqueName
,但如果您调用setName("testdb;DATABASE_TO_UPPER=false")
,则可以添加参数。我怀疑这是否得到官方支持,但它对我有用。
生成连接url的spring代码是这样的:String.format("jdbc:h2:mem:%s;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false",databaseName)
关于spring - 如何在Spring Boot中禁用H2的DATABASE_TO_UPPER,无需显式连接URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33606800/
我是一名优秀的程序员,十分优秀!