`isolation` maps to the database isolation level (how concurrent reads/writes interact). `readOnly = true` is usually a hint for the framework/driver to optimize, but it does not automatically prevent writes in all cases. Also remember: `@Transactional` works via proxies, so it won’t apply on self-invocation.