我正在尝试在单元测试期间在内存数据库交换机架构中使用h2。几乎我所有的数据都在默认模式PUBLIC
中,但是为了模仿生产的工作方式,我需要切换到另一个模式SETTINGS
进行一次查询。
我尝试用jdbcTemplate.getDataSource().getConnection().setSchema("SETTINGS");
切换架构
但是当我记录jdbcTemplate.getDataSource().getConnection().getSchema();
的值时,会得到默认的公共值。
所以我的查询失败了,因为我得到了BadSqlGrammarException,因为找不到我尝试查询的表,这很有意义,因为它在另一个模式中。
有人可以帮我吗?
谢谢!
答案 0 :(得分:1)
您可以在表中添加模式(假设用于连接数据库的用户具有足够的特权),例如:
SELECT * from SETTINGS.you_other_table;
或者,如果可以创建另一个连接,该连接在连接字符串中指定架构。
我建议使用前缀,因为这样可以很清楚地表明您正在使用其他架构。