Nâng CaoJava iconJava

@Transactional(readOnly=true) có tác dụng gì?

readOnly=true là optimization hint cho transaction. Tác dụng:

  1. JPA/Hibernate tắt dirty checking — không theo dõi thay đổi entity, giảm overhead
  2. Database có thể tối ưu query (e.g., read từ replica)
  3. 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ợ.

Xem toàn bộ Java cùng filter theo level & chủ đề con.

Mở danh sách Java