`isolation` mapuje się na poziom izolacji w bazie (jak współbieżne odczyty/zapisy na siebie wpływają). `readOnly = true` to zwykle hint dla frameworka/drivera do optymalizacji, ale nie zawsze blokuje zapisy “z automatu”. I pamiętaj: `@Transactional` działa przez proxy, więc nie zadziała przy self-invocation.