readOnly=true là optimization hint cho transaction. Tác dụng:
- JPA/Hibernate tắt dirty checking — không theo dõi thay đổi entity, giảm overhead
- Database có thể tối ưu query (e.g., read từ replica)
- Flush mode được đặt là MANUAL — không flush session. Ý nghĩa: "method này không thay đổi dữ liệu". Áp dụng cho: các method query, report
Lưu ý: không phải enforcement cứng — Spring không chặn writes, chỉ là hint. Một số DB/ORM sẽ ignore nếu không hỗ trợ.