1

アプリケーションで複数のデータベースを管理する必要があります構成ファイルアプリは

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

    <!-- Scans the classpath of this application for @Components to deploy as beans -->
    <context:component-scan base-package="fr.tessa.jee.webmanager" />

    <!-- Configures the @Controller programming model -->
    <mvc:annotation-driven />

    <!-- misc -->
    <bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
        <property name="suffix" value=".jsp" />
    </bean>

    <!-- Configure the multipart resolver -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- one of the properties available; the maximum file size in bytes -->
        <property name="maxUploadSize" value="1000000" />
    </bean>

    <!-- Configures Hibernate - Database Config -->
    <import resource="dbconfig/db-config.xml" /> 
    <import resource="dbconfig/validationdb-config.xml" />

</beans>

そして私の「db-config.xml」は

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">

    <!-- Hibernate Data Source -->
    <bean id="teoDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://127.0.0.1/teodijon</value></property>
        <property name="username"><value>root</value></property>
        <property name="password"><value</value></property>
    </bean>    
     <!-- Hibernate Session Factory -->
    <bean id="teoSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource"><ref local="teoDataSource"/></property>
        <property name="packagesToScan" value="fr.tessa.jee.webmanager.model" />
        <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
        </property>
    </bean> 
    <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) HibernateTransactionManager -->
    <tx:annotation-driven transaction-manager="teoTransactionManager"/>
    <bean id="teoTransactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory"><ref local="teoSessionFactory"/></property>
    </bean>
</beans>

そして「validationdb-config.xml」

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">

    <!-- Hibernate Data Source -->
    <bean id="validationDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://127.0.0.1/validationdb</value></property>
        <property name="username"><value>root</value></property>
        <property name="password"><value></value></property>
    </bean>    
     <!-- Hibernate Session Factory -->
    <bean id="validationSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource"><ref local="validationDataSource"/></property>
        <property name="packagesToScan" value="fr.tessa.jee.webmanager.validation.model" />
        <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
        </property>
    </bean> 
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) HibernateTransactionManager -->
<tx:annotation-driven transaction-manager="validationTransactionManager"/>
    <bean id="validationTransactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory"><ref local="validationSessionFactory"/></property>
    </bean>
</beans>

パッケージfr.tessa.jee.webmanager.validation.modelにユーザークラスがあり、パッケージfr.tessa.jee.webmanager.modelにクライアントがあります。問題は、ユーザーリストを取得しようとすると、現在のスレッドのセッションが見つからないなどのエラーが発生することですが、クライアントリストの場合は問題なく、app-configに「validationdb-config.xml」をインポートすることから始めます。

<import resource="dbconfig/validationdb-config.xml" />
<import resource="dbconfig/db-config.xml" /> 

クライアントリストを取得しようとするとエラーが発生します

私の構成の問題は何ですか?助けてください :(

4

1 に答える 1

1

問題が見つかりました。問題はサービス内のトランザクションメソッドにあります。このようにtransaction-managerのIDを指定する必要があります

@Transactional(readOnly = true, value="teoTransactionManager")
public List<Client> getClientList() {
    return clientDAO.getClients();
}

私が始めている間、私は@Transactional(readOnly = true)だけを入れました

于 2013-02-15T08:59:31.010 に答える