Tôi có một EJB nơi tôi đang lưu một đối tượng vào cơ sở dữ liệu. Trong một ví dụ tôi đã thấy, một khi dữ liệu này được lưu (EntityManager.persist) có một cuộc gọi đến EntityManager.flush(); Tại sao tôi cần phải làm điều này? Đối tượng tôi đang lưu không được đính kèm và không được sử dụng sau này trong phương thức. Trong thực tế, một khi đã lưu phương thức trả về và tôi mong đợi các tài nguyên được phát hành. (Đoạn mã ví dụ thực hiện điều này trên một cuộc gọi remove là tốt.)EntityManager.flush làm gì và tại sao tôi cần sử dụng nó?
if (somecondition)
entityManager.persist(unAttachedEntity);
else
{
attachedEntityObject.setId(unAttachedEntity.getId());
}
entityManager.flush();
Mô tả về 'FlushModeType' không đúng: về cơ bản AUTO có nghĩa là nếu bạn thay đổi thực thể và sau đó thực hiện truy vấn SELECT có thể trả về thực thể đó, AUTO sẽ buộc thay đổi đối tượng đó bị xóa trước khi thực thi SELECT. –