mybatis autocommit always committing even when false
posted 2 years ago
Hi, I'm trying to get my code to perform a number of inserts and commit at the very end if they all were successful. Here are the relevant mybatis config specs:
And here is a rough outline of the code:
session = sqlSessionFactory.openSession(false);
... insert A, insert B, insert C ...
...unless there is an exception...
However, when I try to call the session.commit(); it gives this error: "Operation Connection.commit is not allowed during a global transaction." and then when I check the table, the record is there. So it seems to have autocommitted.
I've tried setting <transactionManager type="EXTERNAL"> and it says it doesn't know what external is. If I set session = sqlSessionFactory.openSession(true); then I don't get an exception, but then it autocommits. What I am trying to do is to get it to only commit when I call session.commit() and then not commit anything if there is an exception and I call the rollback. Any help would be appreciated.