1

宣言型トランザクション管理を使用して、新しいSpring3とHibernate4の統合を実装しようとしています。しかし、ネット上には非常に少ないドキュメントがあります。常にエラーが発生します:

nested exception is org.hibernate.HibernateException: No Session found for current thread

データソースの構成は次のようになります。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/>
        <property name="url" value="jdbc:derby://localhost:1527/sample;create=true;upgrade=true"/>
        <property name="username" value="******"/>
        <property name="password" value="******"/>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="com.rpm.domain" />
    <property name="hibernateProperties"> 
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop> 
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</prop>
            <!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>

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

<bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator"/>

<bean id="userAccountDAO" class="com.rpm.dao.impl.UserAccountDAO" />
4

3 に答える 3

0

アノテーション ベースのトランザクションが有効になっていないようです。UserAccountDAOをどのように実装しますか? そして、どの行が例外をスローしましたか?

于 2013-08-07T13:02:03.193 に答える
0
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="packagesToScan">
        <list>
            <value>com.zeronetribe.context.model</value>
            <value>com.zeronetribe.context.model.graph</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>

    </property>
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
于 2013-08-07T13:22:43.773 に答える