Hãy coi Hibernate như một bộ nhớ cache lớn mà có thể sử dụng DB như một "kho lưu trữ", nơi nó đặt những thứ không phù hợp với bộ nhớ cache nữa. Hibernate sẽ không chuyển mọi thứ vào DB khi bạn thay đổi nó, nó sẽ đợi. Rất có thể bạn có thể thay đổi nhiều trường trong một đối tượng.
Vì vậy, bạn cần xóa phiên (em.flush()
), hoặc bạn phải chạy một truy vấn, hoặc bạn phải thực hiện giao dịch hiện tại (không phải là một lựa chọn dễ dàng khi sử dụng Spring).