我正在使用MyBatis Multi DB支持连接到Oracle和PostgreS。 http://www.mybatis.org/mybatis-3/configuration.html#databaseIdProvider
我有一个软件堆栈,最初在Oracle上运行查询。在翻转开关时,我想要相同的软件堆栈在PostgreSQL上运行查询。所以我使用了MyBatis Multi DB支持功能,以便根据供应商运行不同的SQL片段。例如“双重”在PostgreS中不可用,但在Oracle中不可用。
当我翻转开关时, _databaseId 属性仍然分配给Oracle,因此PostgreS SQL片段不会运行。当我重新启动软件堆栈时, _databaseId 属性被分配给PostgreSQL并运行相应的SQL片段。
我的用例是我不想重新启动我的服务以使其运行正确的PostgreSQL查询。我该怎么做才能解决这个问题?