게시판 프로젝트에 트랜잭션을 추가하려고 서비스에 있는 메소드에 다음과 같은 코드를 추가함.


@Transactional(propagation =Propagation.REQUIRED, rollbackFor=Exception.class)

public List<ReplyVo> write(ReplyVo rvo) throws Exception {

mapper.createReply(rvo);

bbsService.repCountPlus(Integer.toString(rvo.getBno()));

return mapper.replyList(Integer.toString(rvo.getBno()));

}


그랬더니 다음과 같은 에러가 나옴.



과거의 예제를 찾아 살펴본 결과 root-context의 sqlSessionFactory 부분이 잘못돼있는 것 같음.


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSource" />

<property name="transactionFactory">

<bean

class="org.apache.ibatis.transaction.managed.ManagedTransactionFactory" />

</property>

</bean>


다음과 같이 transactionFactory property부분을 주석처리 해주니 트랜젝션이 적용됨.


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSource" />

<!-- <property name="transactionFactory">

<bean

class="org.apache.ibatis.transaction.managed.ManagedTransactionFactory" />

</property> -->

</bean>

Posted by 타다키치

댓글을 달아 주세요

  1. 아이팁 2021.04.06 10:53 신고  댓글주소  수정/삭제  댓글쓰기

    너무 좋은 포스팅이네요 감사합니다 덕분에 오류가 해결이 되었어요!