Spring jdbctemplate h2动态切换架构

时间:2018-08-13 10:56:47

标签: spring-boot h2 jdbctemplate

我正在尝试在单元测试期间在内存数据库交换机架构中使用h2。几乎我所有的数据都在默认模式PUBLIC中,但是为了模仿生产的工作方式,我需要切换到另一个模式SETTINGS进行一次查询。

我尝试用jdbcTemplate.getDataSource().getConnection().setSchema("SETTINGS");切换架构 但是当我记录jdbcTemplate.getDataSource().getConnection().getSchema();的值时,会得到默认的公共值。
所以我的查询失败了,因为我得到了BadSqlGrammarException,因为找不到我尝试查询的表,这很有意义,因为它在另一个模式中。

有人可以帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在表中添加模式(假设用于连接数据库的用户具有足够的特权),例如:

SELECT * from SETTINGS.you_other_table;

或者,如果可以创建另一个连接,该连接在连接字符串中指定架构。

我建议使用前缀,因为这样可以很清楚地表明您正在使用其他架构。