Spring has 3 typical nested transactions propagations: REQUIRED
, NEW
and NESTED
. Isolation level types are always described in terms of concurrent transactions. But what about nested case? What is the default visibility from inner to outer and the other way around and how does setting isolation level on either affect?
Is there perhaps any rule of thumb like 'an outer transaction always sees changes from an inner unregarding isolation or propagation types' or 'an inner can only see outer's changes when its set as read_uncommited. Or its set as required, etc..?
EDIT: I am not talking of actual sql queries, but the persistence context. I mean, if I create a resource and read it in another part of a nested transaction model, will I see the change regardless of whether it was actually persisted? A good example is a transactional workflow that executes transactional methods that use repository.save, repository.find ... etc
read committed
the default one almost at all databases with fewer exceptions,nested
propagation type is not large supported btw – Wyckoff