최대 절전 모드에서 영구 객체의 자동 업데이트를 중지 할 수 있습니까?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);
}
}
여기 코드에서 발생하는, 난, 영속 상태에있을 다음 나는 개체의 일부 필드를 업데이트하려면 최대 절전 모드로 간주 될 수 엔티티를 검색 한 후 검증에 엔티티를 전달합니다. 유효성 검사가 실패하면 udpate하지 않고 유효성 검사가 성공하면 엔티티를 지속시킵니다.
이 흐름의 주요 문제는 다음과 같습니다. 유효성 검사에 사용할 엔터티를 업데이트했기 때문에 (DAO에서) persist() 메서드를 호출하는지 여부는 중요하지 않으며 레코드는 항상 hibernate가 엔티티가 변경되었음을 감지하고 업데이트를 위해 플래그를 지정하기 때문에 업데이트되어야한다.
나는 유효성 검사를 수행하고 문제를 해결할 방법을 바꿀 수 있으므로 대안에 관심이 없습니다. 나는 영구 객체를 자동으로 업데이트하는 최대 절전 모드 기능을 비활성화 할 수있는 방법을 알고 싶어합니다.
JPA의 최대 절전 모드 구현을 사용하고 있습니다. 그래서 최대 절전 모드 특정 API를 다루는 Hibernate 특정 응답은 나를 위해 작동하지 않을 것이다.
최대 절전 모드 구성을 찾고이 동작을 중지하도록 구성 할 수 있는지 확인했지만 운이 없었는지 확인하려고했습니다.
감사
--edit --- 나는이에 대한 해결책을 찾을 수 없습니다, 그래서 내가 사용하여 선언적인 트랜잭션에있어 비록 어떤 RuntimeException을 던지는없이 트랜잭션을 롤백로 선택했다 :
TransactionInterceptor.currentTransactionStatus(). setRollbackOnly();
매력처럼 작동합니다.
감사합니다,하지만 난 메신저 해결 방법을 찾고 있지 말했듯이, 나는 이미, 메신저 자동 업데이트를 불능으로 수에 특정 구성을 찾고 있다고합니다. – lutfijd