HSF302 - Làm việc với Spring Framework
Câu hỏi của môn
ControllerHandlerMappingDispatcherServletViewResolverHandlerMappingHandlerAdapterViewResolverModelAndViewStackPaneBorderPaneHBoxVBox<a th:href="______">Home</a>private Long id;save()insert()persist()store()em.persist(entity);em.remove(entity);em.find(Entity.class, id);em.merge(entity);Đáp án đúng: "em.merge(entity); ". Cập nhật một entity trong ứng dụng JavaFX thường diễn ra khi đối tượng đã được nạp từ trước, hiển thị trên form, người dùng sửa rồi bấm lưu; lúc đó entity đã ở trạng thái detached (tách khỏi persistence context) vì EntityManager cũ đã đóng, nên phải gọi merge trong một giao dịch: JPA chép trạng thái của nó vào bản managed có cùng khoá chính và khi commit sẽ sinh câu UPDATE. Chú ý merge trả về bản managed, còn đối tượng truyền vào vẫn detached. "em.persist(entity); " dùng cho entity mới, sinh INSERT và báo lỗi khi gặp entity detached. "em.remove(entity); " xoá entity, sinh DELETE. "em.find(Entity.class, id);"chỉ nạp entity theo khoá chính, là bước đọc chứ không ghi thay đổi; tuy entity vừa find rồi sửa trong cùng giao dịch cũng được cập nhật nhờ dirty checking, bản thân lệnh đó không thực hiện việc cập nhật.