2012-12-12 5 views
1

나는 jetty-maven 플러그인으로 실행되는 Java Spring 애플리케이션을 가지고있다. myBatis insert 문을 호출하면 명령문이 자동으로 커밋됩니다. 그러나 update를 호출하면 명령문이 커밋되지 않습니다. myBatis 문서 (http://www.mybatis.org/spring/transactions.html) :myBatis 업데이트 문을 Java Spring 애플리케이션에서 커밋하도록 얻으려면 어떻게해야합니까?

Spring을 통해 SqlSession.commit SqlSession을 관리합니다.

myBatis 업데이트 문에서 자동 커밋하도록 응용 프로그램을 구성하려면 어떻게해야합니까?

로깅을 활성화했습니다. 업데이트에 대한 로그 상태는 다음과 같습니다.

2012-12-12 17 : 20 : 31,669 DEBUG [org.mybatis.spring.SqlSessionUtils] - 새 SqlSession 만들기 2012-12-12 17 : 20 : 31,669 DEBUG [org.mybatis.spring.SqlSessionUtils] - 동기화가 활성화되어 있지 않으므로 SqlSession [[email protected]]이 (가) 동기화에 등록되지 않았습니다. 2012-12-12 17 : 20 : 31,669 DEBUG [org .springframework.jdbc.datasource.DataSourceUtils] - DataSource에서 JDBC 연결 가져 오기 2012-12-12 17 : 20 : 31,669 DEBUG [org.springframework.jdbc.datasource.DriverManagerDataSource] - 새 JDBC DriverManager 연결 만들기 [jdbc : jtds : sqlserver : // test/test] 2012-12-12 17 : 20 : 31,684 DEBUG [org.mybatis.spring.transaction.SpringManagedTransaction] - JDBC 연결 [[email protected]]은 Spring에서 관리하지 않습니다. 2012-12-12 17 : 20 : 31,684 DEBUG [com.persistence.MyMapper.updateMyItem] - 연결을 사용 중입니다. [net.sourceforge. [email protected]] 2012-12-12 17 : 20 : 31,684 DEBUG [com.persistence.MyMapper.updateMyItem] - ==> 준비 중 : myTable set date를 업데이트 하시겠습니까? 여기서 id =? 2012-12-12 17 : 20 : 31,700 DEBUG [com.persistence.MyMapper.updateMyItem] - ==> 매개 변수 : 2012-11-26 00 : 00 : 00.0 (타임 스탬프), 0 (정수) 2012-12-26 12 17 : 20 : 31,700 DEBUG [org.mybatis.spring.SqlSessionUtils] - 비 트랜잭션 SqlSession 닫기 [[email protected]] 2012-12-12 17 : 20 : 31,700 DEBUG [org .springframework.jdbc.datasource.DataSourceUtils] - 인서트 데이터 소스

에 JDBC 연결 돌아가서, 로그는 다음

2012년 12월 12일 16 : 35 : 53,932 DEBUG [org.mybatis.spring.SqlSessionUtils] - 새로운 SqlSession 만들기 2012-12-12 16 : 35 : 53,932 DEBUG [org.mybatis.spring.SqlSessionUtils] - SqlSession [o] 동기화가 활성화되어 있지 않으므로 [email protected]] 동기화에 등록되지 않았습니다. 2012-12-12 16 : 35 : 53,932 DEBUG [org.springframework.jdbc.datasource.DataSourceUtils] - JDBC를 가져 오는 중 DataSource로부터의 연결 2012-12-12 16:35:53,932 DEBUG [org.springframework.jdbc.datasource.DriverManagerDataSource] - [jdbc : jtds : sqlserver : // test/test]에 대한 새 JDBC DriverManager 연결 만들기 2012-12 -12 16 : 35 : 53,932 DEBUG [org.mybatis.spring.transaction.SpringManagedTransaction] - JDBC 연결 [[email protected]]은 Spring에서 관리하지 않습니다. 2012-12-12 16:35 : 53,932 DEBUG [com..persistence.MyMapper.insertMyItem] - 연결 사용 [[email protected]] 2012-12-12 16 : 35 : 53,932 디버그 [com.persistence.MyMapper.insertMyItem ] ===> 준비 : myTable (id, date) 값 (?,?)에 삽입하십시오. 2012-12-12 16 : 35 : 53,932 DEBUG [com.persistence.MyMapper.insertMyItem] - ==> 매개 변수 : 5 (정수), 2012-11-26 00 : 00 : 00.0 (타임 스탬프) 2012-12-12 16 : 35 : 53,932 DEBUG [org.mybatis.spring.SqlSessionUtils] - 비 트랜잭션 SqlSession 닫기 [org.apache.ibatis.session. 기본값.DefaultSqlSession @ 22da8f] 2012년 12월 12일 16 : 35 : [의 org.springframework.jdbc.datasource.DataSourceUtils] 53,932 DEBUG - 삽입 및 업데이트 로그 문이 같은 기본 단계를 표시하는 것 데이터 소스

에 JDBC 연결을 반환 .

답변

2

조금 더 조사한 결과, 클라이언트 문제였습니다. update 문에서 항상 id에 0을 전달했습니다. 레코드의 ID는> 0입니다. 그동안 봄 txn 관리를 구성했습니다. 이 시점에서 동일한 동작을 관찰하고 서버 측 구성 문제 이외의 다른 것이어야한다는 것을 깨달았습니다. 게시하기 전에 미처 알지 못해 죄송합니다.