You might want to set the hibernate.connection.provider_disables_autocommit property to delay the connection acquisition. For more details, check out this article.
This doesn’t address the problem of the OP. The OP wants to redefine a transaction isolation level, not set a transaction isolation level. This is possible with Jaybird, the JDBC driver for Firebird. Jaybird has a default for READ_COMMITTED as isc_tpb_read_committed,isc_tpb_rec_version,isc_tpb_write,isc_tpb_wait (or read committed, read/write, read latest committed record version, wait for locks).
The configuration shown redefines this to read committed, read/write, wait for rows that have an uncommitted record version (ie being modified by a concurrent transaction), which combined with isc_tpb_nowait means ‘fail immediately when reading/updating a row with an uncommitted version’), and don’t wait for locks (ie fail when you can’t get a lock immediately).
Firebird was forked from InterBase about 18 years ago, and the OP wants to do the same for InterBase. I do not know if the InterBase JDBC driver has a similar configuration option.
Thanks for the dialog on this subject. I did receive a reply overnight from someone in the Interbase Expert Group. Those parameters are changeable in JDBC via the following:
But, as Vlad pointed out we’re currently using a default hibernate.connection package and cannot access the Connection object easily. I think what i’m going to do is to pick a Connection pool manager (probably Hikari) and then, since I have direct access to the Connection object I should be able to apply the Connection object settings listed above. My original problem was since our team was using the hibernate default connection pool we could not gain access to the underlying JDBC Connection object easily.