2014-10-04 6 views
0

Мне нужно подключить несколько баз данных PostgreSQL. Я использую файлы свойств для получения свойств подключения к базе данных.Невозможно подключить несколько баз данных PostgreSQL, используя SPRING + HIbernate

Когда я запускаю приложение, он выдает ошибку, так как названный запрос не найден. Но когда я удаляю конфигурацию для второй базы данных, все работает отлично. Я также попробовал использовать каталог атрибут сопоставления hibernate. Но это не принесло никакого результата.

<bean id="propertyConfigurer" 
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
      <property name="locations"> 
        <list> 
        <value>classpath:com/*****/config/jdbc.properties</value> 
        <value>classpath:com/*****/config/userLogin.properties</value> 
        </list> 
      </property> 
      <property name="ignoreUnresolvablePlaceholders" value="false"/> 
      <property name="order" value = "1"/> 
    </bean> 

спящий режим соединения с первым PostgresSQL DataBase

<bean id="teDaDataSource" 
      class="org.springframework.jdbc.datasource.DriverManagerDataSource" > 
       <property name="driverClassName" value ="${jdbc.driverClassName}"/> 
        <property name="url" value="${jdbc.databaseurl}"/> 
        <property name="username" value="${jdbc.username}"/> 
        <property name="password" value ="${jdbc.password}"/> 
    </bean> 


    <bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="teDaDataSource"/> 
    <property name ="mappingLocations" > 

      <list> 

        <value>classpath:Country.hbm.xml</value> 
        <value>classpath:AccountType.hbm.xml</value> 
        <value>classpath:Stocks.hbm.xml</value> 
      </list> 
    </property> 
    <property name = "hibernateProperties"> 
      <props> 
       <prop key="dialect">${hibernate.dialect}</prop> 
       <prop key="show_sql">${hibernate.showsql}</prop> 
       <prop key="hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> 
       <prop key="connection.autocommit">true</prop> 
       <prop key="hibernate.connection.release_mode">after_transaction</prop> 
       <prop key="transaction.auto_close_session">true</prop> 
      </props> 
    </property> 
    </bean> 
      <bean id="abstractDaoTarget" class="com.****.generic.dao.GenericDaoImpl" abstract="true"> 
      <property name="sessionFactory"> 
      <ref bean="sessionFactory"/> 
      </property> 
    </bean> 

     <bean id = "transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager" lazy-init="true"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
     </bean> 

     <tx:advice id="txAdvice" transaction-manager="transactionManager"> 
        <tx:attributes> 
         <tx:method name="get*" read-only="true" propagation="REQUIRED"/> 
         <tx:method name="*" propagation="REQUIRED"/> 
       </tx:attributes> 
     </tx:advice> 

конфигурации спящего режима для базы данных второго POSTGRES

<bean id="userLoginDaDataSource" 
      class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
        <property name="driverClassName" value ="${jdbc.driverClassName}"/> 
        <property name="url" value="${jdbc.databaseurl}"/> 
        <property name="username" value="${jdbc.username}"/> 
        <property name="password" value ="${jdbc.password}"/> 
    </bean> 

    <bean id="userLoginSessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="userLoginDaDataSource"/> 
    <property name ="mappingLocations"> 
    <list> 
      <value>classpath:SecurityQuestion.hbm.xml</value> 
    </list> 
    </property> 
    <property name = "hibernateProperties"> 
      <props> 
       <prop key="dialect">${hibernate.dialect}</prop> 
       <prop key="show_sql">${hibernate.showsql}</prop> 
       <prop key="hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> 
       <prop key="connection.autocommit">true</prop> 
       <prop key="hibernate.connection.release_mode">after_transaction</prop> 
       <prop key="transaction.auto_close_session">true</prop> 
      </props> 
    </property> 
    </bean> 
      <bean id="abstractDaoTarget" class="com.bhaskar.generic.dao.GenericDaoImpl" abstract="true"> 
      <property name="sessionFactory"> 
      <ref bean="userLoginSessionFactory"/> 
      </property> 
    </bean> 

     <bean id = "transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager" lazy-init="true"> 
     <property name="sessionFactory" ref="userLoginSessionFactory" /> 
     </bean> 

     <tx:advice id="txAdvice" transaction-manager="transactionManager"> 
        <tx:attributes> 
         <tx:method name="get*" read-only="true" propagation="REQUIRED"/> 
         <tx:method name="*" propagation="REQUIRED"/> 
       </tx:attributes> 
     </tx:advice> 

Класс-таблица отображения файла

<hibernate-mapping> 
    <class name="com.*****.entity.Country" table="primary_data.country"> 
    <id name="countryId" type="int"> 
    <column name="country_id" not-null="true"/> 
    <generator class="increment"/> 
    </id> 
    <property name="countryName" type="string"> 
    <column name="country_name" length="100" not-null="true"/> 
    </property> 

    <property name="countryDesc" type="string"> 
    <column name="country_desc" length="100"/> 
    </property> 

    <property name="countryCapital" type="string"> 
    <column name="country_capital" length="100" not-null="true"/> 
    </property> 
    </class> 
    <query name="getAllCountry">from Country </query> 
    </hibernate-mapping> 

недвижимости конфигурационный файл для второй базы данных

jdbc.driverClassName=org.postgresql.Driver 
    jdbc.databaseurl=jdbc\:postgresql\://localhost\:5432/userLogin 
    jdbc.username=****** 
    jdbc.password=****** 
    hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect 
    hibernate.showsql=false 
    hibernate.hbm2ddl.auto=update 

Свойство Файл конфигурации для первой базы данных

jdbc.driverClassName=org.postgresql.Driver 
    jdbc.databaseurl=jdbc\:postgresql\://localhost\:5432/***** 
    jdbc.username=******* 
    jdbc.password=****** 
    hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect 
    hibernate.showsql=false 
    hibernate.hbm2ddl.auto=update 

Любая помощь будет оценена

+0

Также вы можете отправить полный стек. – John

+0

Ошибка создания компонента с именем «handlerMapping», определенным в ресурсе пути к классу [com/****/config/applicationContext-base.xml]: Инициализация компонента не выполнена; Вложенное исключение - org.springframework.beans.factory.BeanCreationException: вызов метода init не удался; Вложенное исключение - org.hibernate.HibernateException: Ошибки в именованных запросах: getAllCountry –

+0

Это не полная трассировка стека. Измените свой вопрос и опубликуйте полную трассировку стека. –

ответ

0

сообщение об ошибке говорит:

Ошибки в именованных запросов: getAllCountry

getAllCountry запрос

Select * from Country 

Это не действует HQL. Это SQL. SQL! = HQL. Действительным запросом HQL будет

select c from Country c 
+0

Я пробовал использовать только из страны. Это сработало, но множественное соединение db не сработало –

+0

Вам нужно понять, что «не работает» - очень плохое описание проблемы. Как уже было задано дважды, отправьте полную статистику стека ошибок, которые вы получаете в своем вопросе. –

+0

полная трассировка стека слишком велика тоже вставить здесь –

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