블로그 이름

[DB] Java Ibatis에서 ORACLE과 MARIADB 트랜잭션 사용 시 차이 본문

개발/Database

[DB] Java Ibatis에서 ORACLE과 MARIADB 트랜잭션 사용 시 차이

Hide 2025. 5. 29. 23:15

ibatis를 사용하여 oracle과 maria db에서 트랜잭션을 걸고 insert 중, 쿼리 자체에는 문제가 없는데 결과 반환이 false인 현상이 있었다.

 

oracle, maria 둘 다 쿼리 자체엔 문제가 없다 (단순한 insert 쿼리였기에 그리고 isnert 자체도 잘 되고 있었다)

 

java 코드는 insert 후 반환값을 받아 0 이상일 시 true로 반환하도록 하고 있었는데, 동작은 잘 되나 oracle에서는 잘 되는게 maria로 돌리면 결과가 false 로 반환되는 것이었다

 

확인해 보았을때 ibatis에서 insert의 반환값은 pk 값으로 되어 있는데, oracle 에서는 트랜잭션 실행 후 for문을 돌면서 insert 시마다 pk가 반환되는데 maria에서는 insert가 되었는데도 pk가 반환되지 않고 있었던 것 

 

mariadb에서는 트랜잭션이 걸려있으면 id를 반환하지 않아 발생하였던 것

 

트랜잭션을 푼 뒤 id가 반환되는 것을 확인하였다.