2 つのトランザクション マネージャー (1 つは READ 要求用、もう 1 つは READ-WRITE 要求用) と 2 つのセッション ファクトリを作成しました。
重要なスニペットは次のとおりです。
<tx:annotation-driven />
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="SessionFactory" />
</bean>
<bean id="txManagerRead"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="SessionFactory" />
<qualifier value="READ"/>
</bean>
<bean id="txManagerWrite"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="Session1" />
<qualifier value="WRITE"/>
</bean>
<bean id="AbstractSessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
abstract="true">
<property name="annotatedClasses">
<list>
.....
....
</list>
</property>
<property name="exposeTransactionAwareSessionFactory">
<value>true</value>
</property>
</bean>
<bean id="SessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
parent="AbstractSessionFactory">
<property name="hibernateProperties">
<props>
.........
.........
</props>
</property>
</bean>
<bean id="SessionFactory1"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
parent="AbstractSessionFactory">
<property name="hibernateProperties">
<props>
.........
.........
</props>
</property>
</bean>
次のようなDAO用のBeanを作成しようとしている瞬間:
<bean id="configurationDAO" class="com.amazon.im.dao.hibernate.ConfigurationDAOImpl">
<property name="sessionFactory" ref="SessionFactory" />
</bean>
BeanCreationException
次のエラー メッセージが表示されます。
org.springframework.beans.factory.BeanCreationException: 'configurationDAO' という名前の Bean の作成中にエラーが発生しました: 自動配線された依存関係の注入に失敗しました。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Could not autowire field: public org.hibernate.SessionFactory com.amazon.im.dao.hibernate.GenericDAOImpl.sessionFactory; です。ネストされた例外は org.springframework.beans.factory.NoSuchBeanDefinitionException: タイプ [org.hibernate.SessionFactory] の一意の Bean が定義されていません: 単一の一致する Bean が予想されますが、2 が見つかりました: [SessionFactory, SessionFactory1]
LocalSessionFactoryBean
「annotatedClasses」プロパティを使いたいので使えません。
なぜそれが起こっているのかについての指針はありますか?私の側に欠けているものはありますか?