- - PR -
Spring + Hibernateのトランザクションについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-06-15 11:42
初めて投稿させていただきます。
Spring 1.2.1 と Hibernate3 で開発をしておるのですが、 こんなソースを書いたところ public class DailyDao extends HibernateDaoSupport{ public void updateDaily(Object daily) { getHibernateTemplate().save(daily); } } こんなエラーが出てしまいます。 org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition at org.springframework.orm.hibernate3.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:910) #以下略 Googleで調べたところ以下のサイトに http://forums.opensymphony.com/thread.jspa?threadID=49 「トランザクションに参加すれば直る」みたいな記述があったので、 applicationContext.xml に <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <bean id="facadeTarget" class="model.TimecardServiceImpl"> <property name="userDao"> <ref bean="userDao"/> </property> <property name="dailyDao"> <ref bean="dailyDao"/> </property> </bean> <bean id="facade" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref local="transactionManager"/> </property> <property name="target"> <ref local="facadeTarget"/> </property> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> という記述を加えたのですが、結果は同じでした。 どなたか解決法をご存じの方はいらっしゃらないでしょうか。 よろしくどうぞ。 |
|
投稿日時: 2005-06-22 09:55
自己レスですが、解決しました。
TransactionProxy 経由で DAO のメソッドは呼び出さなければならない、 というのが結論でした。 考えてみれば当然のことで、お騒がせしました。 |
1