Tôi có một thực thể ngủ đông được gọi là Thi hành. Nó được tạo ra trong phần đầu của quá trình của tôi và được cập nhật ở cuối, cho biết nó đã kết thúc như thế nào.Cập nhật thực thể JPA-Hibernate mà không chọn nó từ cơ sở dữ liệu
Tôi muốn cập nhật một thuộc tính duy nhất của thực thể này mà không gây ra sự lựa chọn trong cơ sở dữ liệu của tôi.
Execution execution = entityManager.getReference(Execution.class, executionId);
execution.setStatus(Status.FINISHED);
// -> Gọi phương thức này sẽ kích hoạt SELECT trong cơ sở dữ liệu của tôi. Tôi không muốn nó xảy ra, tôi chỉ muốn cập nhật thực thể của mình.
Điều này không cụ thể cho phương pháp này, bất kỳ phương pháp nào khác được gọi là kết quả trong mệnh đề SELECT. Trong thực tế, chọn xuất hiện để xảy ra ngay cả trước khi phương pháp của tôi được gọi. Ấn tượng của tôi là các proxy hibernate đặt một số mã bên trong lớp của tôi no-args contructor để kích hoạt mọi lựa chọn mọi phương thức được gọi.
Có thể cập nhật các thực thể JPA/Hibernate mà không cần kích hoạt câu lệnh SELECT trong cơ sở dữ liệu của tôi không?
Tôi sẽ chấp nhận câu trả lời này là câu trả lời chính xác. Tôi đã xem xét một giải pháp dễ dàng hơn cho những gì tôi muốn, bằng cách sử dụng JPA-QL Bulk Update/Insert http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/batch.html#batch-direct – user266391
@ user266391 Tôi không quen thuộc với JPA vì vậy cảm ơn cho các liên kết :-) –