Java 如何在H2数据库中模拟Oracle DB链接?
我的问题如下:我必须测试一个用JavaSpring编写的应用程序。 在现实生活中,DB服务器将是Oracle。在使用DB链接的地方有一些选择。 (例如:从中选择*country@isem_db; ) 在测试环境中,我们使用H2数据库,它不知道这种语法。(@)Java 如何在H2数据库中模拟Oracle DB链接?,java,spring,oracle,h2,Java,Spring,Oracle,H2,我的问题如下:我必须测试一个用JavaSpring编写的应用程序。 在现实生活中,DB服务器将是Oracle。在使用DB链接的地方有一些选择。 (例如:从中选择*country@isem_db; ) 在测试环境中,我们使用H2数据库,它不知道这种语法。(@) 我的问题是:这是否可能使这种Oracle语法为H2所接受?在不修改原始源代码的情况下是否存在一些变通方法?您的Oracle代码不应包含嵌入式数据库链接。数据库链接名称可能会在不同的环境中更改,这会使代码变得脆弱。或者,您可能需要切换到使用本
我的问题是:这是否可能使这种Oracle语法为H2所接受?在不修改原始源代码的情况下是否存在一些变通方法?您的Oracle代码不应包含嵌入式数据库链接。数据库链接名称可能会在不同的环境中更改,这会使代码变得脆弱。或者,您可能需要切换到使用本地副本(或物化视图) 正确的方法是使用同义词。在Oracle中,您可以为远程表创建同义词:
create synonym isem_country for country@isem_db;
显然,您需要更改Oracle代码以引用同义词名称而不是远程表
这为您提供了在H2中运行的解决方案,前提是您正在使用。在H2中,您将在本地表上创建同名的同义词:
create synonym isem_country for country;
您的Oracle代码不应包含嵌入式数据库链接。数据库链接名称可能会在不同的环境中更改,这会使代码变得脆弱。或者,您可能需要切换到使用本地副本(或物化视图) 正确的方法是使用同义词。在Oracle中,您可以为远程表创建同义词:
create synonym isem_country for country@isem_db;
显然,您需要更改Oracle代码以引用同义词名称而不是远程表
这为您提供了在H2中运行的解决方案,前提是您正在使用。在H2中,您将在本地表上创建同名的同义词:
create synonym isem_country for country;
如果不修改应用程序中的查询或H2源,就不可能实现此功能;H2不支持这种非标准语法。您也可以在H2中链接来自其他数据库的表,但此类链接表使用普通名称的常规语法;H2不支持这种非标准语法。您也可以在H2中链接来自其他数据库的表,但此类链接表使用普通名称的常规语法。