2016-04-04 5 views
1

Расширения Postgres устанавливаются в общедоступной схеме. Установите путь поиска для приложения конкретной схемы на ГСБД источника данных следующим образом:Searchpath с Postgres не работает с источником данных Spring/DBCP

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" primary="true"> 
    <property name="driverClassName" value="org.postgresql.Driver"/> 
    <property name="url" value="jdbc:postgresql://myhost:myport/${db.gos_app.database}?searchpath=mySchema,public;?ApplicationName=${app.name}"/> 
    <property name="connectionProperties" value="currentSchema=mySchema;"/> 
    <property name="username" value="user"/> 
    <property name="password" value="pw"/> 
    <property name="defaultAutoCommit" value="false"/> 
    <property name="maxActive" value="6" /> 
</bean> 

Но почему-то я не могу использовать расширения, установленные в этой общественной схеме без квалифицируя их как «public.hstore».

ответ

0

Обнаружено решение - драйвер JDBC не знает свойства поиска в URL-адресе. Но это не было нигде сообщили :-( Вместо CurrentSchema отдается водителю, который затем отображается в родной Postgres SearchPath (таким образом, вероятно, перезапись один по умолчанию там с публикой в ​​комплекте). Не интуитивное!

So выглядит решения как это:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" primary="true"> 
<property name="driverClassName" value="org.postgresql.Driver"/> 
<property name="url" value="jdbc:postgresql://myhost:myport/${db.gos_app.database}?ApplicationName=${app.name}"/> 
<property name="connectionProperties" value="currentSchema=mySchema,public;"/> 
<property name="username" value="user"/> 
<property name="password" value="pw"/> 
<property name="defaultAutoCommit" value="false"/> 
<property name="maxActive" value="6" /> 

+0

Почему вы не просто изменить путь поиска для пользователя базы данных 'изменить пользовательский набор search_path = ...' –

+0

Потому что у нас есть общий пользователь через несколько услуг?. .. – Strinder

 Смежные вопросы

  • Нет связанных вопросов^_^