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

How can I specify the current schema on quarkus datasource?

您好,我正在尝试配置 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

这可能是什么问题?

谢谢。

您可以尝试在连接 url 中设置模式。但是你想要实现的是,基本上将每个用户请求路由到一个特定的模式,你应该通过这种方式检查 hibernate multitenancy support,你可以将每个请求路由到你想要的数据库,但要注意参数的限制您可以使用 来了解将您的请求发送到哪里。

同时勾选 hibernate catalog and schema configuration parameters

如果您将 jdbc 子路径名称添加到 属性

中,则可以正常工作
quarkus.datasource.mydatasource.jdbc.new-connection-sql=ALTER SESSION SET CURRENT_SCHEMA=SCHEMA_NAME

这里的文档有点误导。