Có thể dừng chế độ ngủ đông từ tự động cập nhật đối tượng liên tục không?Cách tắt tự động cập nhật trong hibernate/JPA
@Transactional
public ResultTO updateRecord(RequestTO requestTO) {
Entity entity = dao.getEntityById(requestTO.getId());
// now update the entity based on the data in the requestTO
ValidationResult validationResult = runValidation(entity);
if(validationResult.hasErrors()) {
// return ResultTO with validation errors
} else {
dao.persist(entity);
}
}
Đây là những gì xảy ra trong các mã, tôi lấy đơn vị đó sẽ được xem xét bởi hibernate để được ở trạng thái dai dẳng, sau đó tôi cập nhật một số lĩnh vực trong thực thể, sau đó vượt qua các đối tượng để xác nhận. nếu xác nhận không thành công, sau đó không udpate, nếu xác nhận thành công sau đó vẫn tồn tại thực thể. Đây là vấn đề chính với luồng này: bởi vì tôi đã cập nhật thực thể để nó được sử dụng trong quá trình xác nhận, cho dù tôi có gọi phương thức persist() (trên DAO) hay không, bản ghi sẽ luôn luôn là vấn đề được cập nhật vì hibernate phát hiện rằng thực thể đã được thay đổi và gắn cờ nó để cập nhật.
Giữ im tâm Tôi có thể thay đổi cách tôi xác nhận và giải quyết vấn đề, vì vậy tôi không quan tâm đến cách giải quyết. Tôi quan tâm đến việc biết làm thế nào tôi sẽ có thể vô hiệu hóa các tính năng ngủ đông, nơi nó sẽ tự động cập nhật các đối tượng liên tục.
Hãy nhớ rằng tôi đang sử dụng triển khai JPA của hibernates. vì vậy các câu trả lời cụ thể về Hibernate đối phó với API cụ thể hibernate sẽ không hoạt động đối với tôi.
Tôi đã cố gắng tìm cấu hình ngủ đông và xem liệu tôi có thể đặt bất kỳ cấu hình nào để dừng hành vi này nhưng không may mắn.
Cảm ơn
--edit --- tôi không thể tìm thấy một giải pháp này, vì vậy tôi chọn cách lăn trở lại giao dịch mà không ném bất kỳ RuntimeException mặc dù tôi đang ở trong một giao dịch khai báo sử dụng:
TransactionInterceptor.currentTransactionStatus(). SetRollbackOnly();
hoạt động như sự quyến rũ.
cảm ơn, nhưng như tôi đã nói im không tìm kiếm một cách giải quyết, tôi đã có điều đó, im tìm kiếm một cấu hình cụ thể để có thể Diable tự động cập nhật. – lutfijd