1
我正在使用Hibernate,Spring和JSF。opensessioninview和commit transaction
爲了防止LazyInitializationException中我使用
<bean name="openSessionInViewInterceptor" class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
<property name="sessionFactory" ref="sessionFactory"/>
<property name="singleSession" value="true"/>
</bean>
在myDAO,我定義的方法:
public Collection<T> findAll() {
Session session = getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
return
session.createCriteria(persistentClass
).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY
).list();
}
和我所說的方法是這樣的:
@Transactional(readOnly = false, propagation = Propagation.SUPPORTS)
public Collection<MyData> getMyData() {
return (Collection<MyData>) myDAO.findAll();
}
在這個例子我使用了Spring事務。我是否需要在findAll方法中的Transaction tx = session.beginTransaction(); and tx.commit()?
開始交易?
我使用Oracle 10g