NOTE

Using Spring Transactions

Declarative transaction boundaries, rollback rules, proxy limitations, isolation, timeouts, and external side effects.

JavaCreated Updated 1 min readhistorical

This is a historical learning note and may contain outdated or incomplete understanding.

@Transactional should mark a meaningful business/data consistency boundary, not every repository call mechanically.

Configure propagation, isolation, timeout/read-only hints, and rollback rules deliberately. The common proxy model means interception is applied only to calls entering through the proxy; self-invocation is a frequent surprise.

Do not perform long remote calls inside a database transaction without understanding lock/connection duration. For DB + message/service consistency, use an outbox/saga/other explicit distributed consistency pattern rather than assuming one annotation makes everything atomic.

Loading helpful count