Nổi bậtengineering
N+1 query: vì sao một lần xuất sao kê bắn ra 5.001 câu SQL?
Xuất sao kê treo chục giây vì Hibernate bắn 5.001 câu SQL thay vì 1 — còn màn danh sách phân trang thì che giấu bug. Cơ chế N+1 query trong JPA và 4 cách fix.
3 tháng 7, 2026 · 7 phút đọcĐọc bài
Tất cả bài viết
Bài mới nhất
engineering
Vì sao không lưu tiền bằng double — và dùng BigDecimal sao cho đúng?
Báo cáo tổng lãi lệch 9 đồng dù từng chi nhánh khớp: cộng 10 triệu dòng bằng double, sai số mỗi phép cộng gom thành tiền thật. Cơ chế IEEE 754 và BigDecimal.
2 tháng 7, 2026 · 10 phút đọc
engineering
Vì sao @Transactional không rollback dù đã đặt đúng chỗ?
@Transactional nằm trên method mà dữ liệu vẫn lưu một nửa? Vì nó là AOP proxy: self-invocation bỏ qua proxy, còn checked exception mặc định không rollback.
2 tháng 7, 2026 · 6 phút đọc
engineering
Vì sao 127 == 127 đúng nhưng 128 == 128 sai trong Java?
Trong Java, so sánh hai Integer bằng == đôi khi đúng đôi khi sai — vì == so địa chỉ object, còn Integer chỉ cache dải −128..127. So giá trị: dùng .equals().
1 tháng 7, 2026 · 6 phút đọc