1
최대 절전 모드, 스프링 및 JSF를 사용하고 있습니다. LazyInitializationException이를 방지하기 위해 내가 myDAO에서오픈 트랜잭션을보고 트랜잭션을 커밋합니다.
<bean name="openSessionInViewInterceptor" class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
<property name="sessionFactory" ref="sessionFactory"/>
<property name="singleSession" value="true"/>
</bean>
을 사용하고
, 나는 방법 정의 :
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()?
에 트랜잭션을 시작해야합니까? @Transactional
를 사용하여 (그리고 빈은 transactionManager
라고, 그리고 <tx:annotation-driven />
을) 때
그때 수동 트랜잭션을 처리 할 필요가 없습니다, 오라클 10g