【发布时间】:2013-01-11 01:37:11
【问题描述】:
使用 Spring DataSource 和 QueryDsl SQLQueryImpl,如何指定架构或设置架构?
测试用例是:
- 使用 querydsl-maven-plugin (2.9.0) 连接到 DB2 数据库以生成指定
<schemaPattern>的 Q-Classes - Spring 创建一个
DataSourcebean -
DataSourcebean 由脚本填充(CREATE SCHEMA FOO、CREATE TABLE FOO.BAR等) - JUnit 测试导入
DataSource - 使用
new SQLQueryImpl(dataSource.getConnection(), Configuration.DEFAULT)查询
错误:
org.h2.jdbc.JdbcSQLException: Table "BAR" not found; SQL Statement: ...
请注意,这个测试实现是一个 H2 数据库,但生产数据库是 DB2。到目前为止,我已经尝试在 JDBC 连接字符串中指定架构,但无济于事。
【问题讨论】:
-
H2 数据库的数据库 URL 是什么?
-
数据库 url 是
jdbc:h2:mem:testdb。我无法在连接 URL 中指定架构,因为架构尚不存在。ResourceDatabasePopular在数据库创建后被调用,CREATE SCHEMA语句随后被执行。 -
您可以在打开数据库 URL (
jdbc:h2:mem:test;INIT=CREATE SCHEMA IF NOT EXISTS...) 时使用INIT功能创建架构。
标签: java spring db2 h2 querydsl