如何在quarkus数据源上指定当前模式



嗨,我正在尝试将quarkus配置为连接到oracle数据库。使用当前配置,我可以连接到数据库,但无法指定当前模式。

我遵循了文档,并尝试使用新的连接sql来设置当前模式。但它似乎不起作用。

quarkus.datasource.mydatasource.new-connection-sql=ALTER SESSION SET CURRENT_SCHEMA=SCHEMA_NAME

这是我的application.properties文件

quarkus.datasource.mydatasource.db-kind=oracle
quarkus.datasource.mydatasource.jdbc.driver=oracle.jdbc.driver.OracleDriver
quarkus.datasource.mydatasource.jdbc.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.15.73.140)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=SN)))
quarkus.datasource.mydatasource.jdbc.min-size=3
quarkus.datasource.mydatasource.jdbc.max-size=20
quarkus.datasource.mydatasource.username=username
quarkus.datasource.mydatasource.password=password
quarkus.datasource.mydatasource.new-connection-sql=ALTER SESSION SET CURRENT_SCHEMA=SCHEMA_NAME

这里可能有什么问题?

谢谢。

如果将jdbc子路径名添加到属性中,则可以正常工作

quarkus.datasource.mydatasource.jdbc.new-connection-sql=ALTER SESSION SET CURRENT_SCHEMA=SCHEMA_NAME

您可以参考这些Quarkus配置参考:

  • https://quarkus.io/guides/datasource#quarkus-agroal_quarkus.datasource.-datasource名称-.jdbc.new-connection-sql
  • https://quarkus.io/guides/datasource#quarkus-agroal_quarkus.datasource.jdbc.new-connection-sql

您可以尝试在连接url中设置架构。但是,您试图归档的内容,基本上是将每个用户请求路由到一个特定的模式,您应该检查hibernate多租户支持。通过这种方式,您可以将每个请求路由到您想要的数据库,但要注意有关参数的限制,您可以使用这些参数来知道将请求路由到哪里。

还要检查hibernate目录和模式配置参数

最新更新