Tôi đang thu thập thông tin về phương thức flush (), nhưng tôi không rõ khi nào sử dụng nó và cách sử dụng nó một cách chính xác. Từ những gì tôi đọc, hiểu biết của tôi là nội dung của bối cảnh liên tục sẽ được đồng bộ hóa với cơ sở dữ liệu, tức là phát hành các câu lệnh nổi bật hoặc làm mới dữ liệu thực thể.
Bây giờ tôi nhận được kịch bản sau với hai thực thể Avà B(trong mối quan hệ một đối một, nhưng không được JPA thực thi hoặc mô hình hóa). Acó PK tổng hợp, được đặt theo cách thủ công và cũng có trường IDENTITY được tạo tự động recordId. Điều này recordIdphải được ghi vào thực thể Bdưới dạng khóa ngoại cho A. Tôi đang tiết kiệm Avà Btrong một giao dịch duy nhất. Vấn đề là giá trị được tạo tự động A.recordIdkhông có sẵn trong giao dịch, trừ khi tôi thực hiện một cuộc gọi rõ ràng em.flush()sau khi gọi em.persist()tiếp A. (Nếu tôi có PK IDENTITY được tạo tự động thì giá trị được cập nhật trực tiếp trong thực thể, nhưng đó không phải là trường hợp ở đây.)
Có thể em.flush()gây hại gì khi sử dụng nó trong một giao dịch không?