java.sql.SQLException: IJ031040 awal tampaknya terkait dengan hasil tertentu selama impor kami. Nanti diganti dengan java.sql.SQLException yang lain yang melarang pengembalian untuk transaksi terkelola. Tapi saya akhirnya bisa memecahkan masalah dengan mengeluarkan pernyataan SQL asli:
// Mark the current state as SAVEPOINT...
Session session = this.em.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
connection.prepareStatement("SAVEPOINT TRY_POSSIBILITY").executeUpdate();
}
});
//
// Do all the risky changes... verify... decide...
//
// Rollback to SAVEPOINT if necessary!
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
connection.prepareStatement("ROLLBACK TO SAVEPOINT TRY_POSSIBILITY").executeUpdate();
}
});
Ini memungkinkan "Transaksi bersarang" dalam transaksi yang lebih besar dan menyelesaikan masalah saya.