私はこの問題をしばらく取り組んできましたが、解決策は見当たりません。誰も私を助けることができると思う。Spring:トランザクションマネージャが設定されていません
私はHibernateTransactionManagerを設定しました。しかし、ログファイルに次のメッセージが表示されます。
DEBUG [http-8080-1] AnnotationTransactionAttributeSource.getTransactionAttribute(107)|トランザクション方法[cashIn]属性の[PROPAGATION_REQUIRED、ISOLATION_DEFAULT、-nl.forestfields.picnic.domain.model.exception.IllegalCostException]
DEBUG [HTTP-8080から1] AnnotationTransactionAspect.createTransactionIfNecessary(267)を追加|トランザクションマネージャが設定されていないためにトランザクションジョインポイントをスキップする[nl.forestfields.picnic.view.controller.ShoppingListController.cashIn]
また、例外の場合、トランザクションはロールバックされません。
ここに私の設定があります:
ピクニック-servlet.xml:
<beans>
<context:component-scan base-package="picnic" />
<context:annotation-config />
<tx:annotation-driven />
.
.
.
ピクニック・コンテキスト-db.xml:
<bean class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" id="sessionFactory">
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
</props>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${hibernate.connection.driver_class}</value>
</property>
<property name="url">
<value>${hibernate.connection.url}</value>
</property>
<property name="username">
<value>${hibernate.connection.username}</value>
</property>
<property name="password">
<value>${hibernate.connection.password}</value>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
いるはずのコードがトランザクション内で実行する:
@Transactional(rollbackFor=IllegalCostException.class)
public ModelAndView cashIn(@RequestParam final Long id) throws IllegalCostException, llegalOrderStateException, IllegalShoppingListStateException {
final ShoppingList shoppingList = shoppingListRepository.getById(id);
shoppingList.cashIn();
shoppingListRepository.add(shoppingList);
return new ModelAndView(...);
}
誰でも問題を見ることができますか?
乾杯、 Jippe
2.5年後...あなたの答えは私の問題を解決しました。申し訳ありませんがあなたの答えを正解として受け入れることはできませんが、少なくともあなたは私から+1があります。 – Paul