Transacrion 처리 - was not registered for synchronization because synchronization is not active
2023. 12. 5. 10:53ㆍ2023/기록_2023
디버깅을 하다보니 mapper에서 데이터를 전혀 가져오지 못하고 있는 것을 발견했다.
그래서 디버그 로그를 확인해보니 아래와 같은 로그가 찍혔다.
[2023-12-04 17:18:30,601] DEBUG org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:104) - Creating a new SqlSession
[2023-12-04 17:18:30,640] DEBUG org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:140) - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@130dd2ab] was not registered for synchronization because synchronization is not active
[2023-12-04 17:18:30,694] DEBUG org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:110) - Fetching JDBC Connection from DataSource
[2023-12-04 17:18:30,694] DEBUG org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:142) - Creating new JDBC DriverManager Connection to [jdbc:mysql://~~~~]
[2023-12-04 17:18:31,437] DEBUG org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:86) - JDBC Connection [com.mysql.jdbc.JDBC4Connection@3b75d130] will not be managed by Spring
[2023-12-04 17:18:31,480] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) - ==> Preparing: SELECT ... FROM ...;
[2023-12-04 17:18:31,723] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) - ==> Parameters:
[2023-12-04 17:18:33,367] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) - <== Total: 5164
[2023-12-04 17:18:33,369] DEBUG org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:168) - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@130dd2ab]
[2023-12-04 17:18:33,370] DEBUG org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:327) - Returning JDBC Connection to DataSource
C:\Users\전지민\Downloads\apache-tomcat-7.0.99\apache-tomcat-7.0.99\bin\catalina.bat stop
Disconnected from the target VM, address: '127.0.0.1:55711', transport: 'socket'
myBatis 환경에서 트랜잭션 처리가 되지 않은 경우에 다음과 같은 로그가 찍힌다고 한다. 이는 dataSource 부분이 인스턴스 생성하거나, 의존성을 주입하는 부분이 없다는 경고
이미 올라간 프로젝트와 나의 프로젝트 구조가 동일한데 내꺼만 안된다고 입이 튀어나와있었는데... Mapper에서 예외처리 유무만 다르고, 컴파일 에러가 안나길래 상관없나보구나 했는데.... 예외 때문이었다.
List<ArticleVO> lawKeywordSearch() throws SQLException;
다음과 같이 throws SQLException을 해주고, mapper를 호출했던 Service 구현체에서 mapper와 관련된 예외처리부분을 날렸다. - thows new RuntimeException();
이렇게 하고나니 DB에서 데이터를 잘 조회한다. 이유를 찾아보니, try ~ catch문을 하면 exception이 catch문에서 printStackTrace로 잡히기 때문에 그렇다고 한다.
'2023 > 기록_2023' 카테고리의 다른 글
mysqldump 데이터 백업 및 복원 (0) | 2024.01.22 |
---|