728x90
반응형
트랜잭션(Transaction)
- 데이터베이스를 다룰 때 트랜잭션을 적용하면 데이터 추가, 갱신, 삭제 등으로 이루어진 작업을 처리하던 중 오류가 발생했을 때 모든 작업들을 원상태로 되돌릴 수 있다.
- 모든 작업들이 성공해야만 최종적으로 데이터베이스에 반영하도록 한다.
- 즉 데이터를 추가, 수정, 삭제 시킬 때 바로 DB에 반영 하지 않고 영속성 캐시에 담아뒀다 한번에 반영 하게 된다.
UPDATE
JPA는 Update 메서드를 따로 제공하고 있지 않다.
그렇기에 Service로직에 @Transactional 어노테이션을 붙이고,
Entity데이터를 조회 후 set() 하여 Entity의 데이터를 수정만 하면 데이터베이스에 대한 연산?작업이 끝날 때 @Transactional 어노테이션에 의해 Entity의 값이 변경된 것을 확인하고 자동으로 DB에 변경된 데이터를 반영하게 된다.
ex>
@Service
@RequiredArgsConstructor
@Transactional
@Slf4j
public class UserService {
private final UserRepository userRepository;
private UserResponse userResponse;
public UserResponse updateInfo(String userId, UserEntity user){
userResponse = new UserResponse();
Optional<UserEntity> newUser = userRepository.findById(userId);
if (newUser.isPresent()) {
newUser.get().setName(user.getName());
newUser.get().setPhone(user.getPhone());
newUser.get().setBirth(user.getBirth());
}
return userResponse;
}
}
728x90
반응형
'🍃SpringFramework > SpringDataJPA' 카테고리의 다른 글
[JPA] Query Method. 쿼리 메서드 (0) | 2023.09.25 |
---|---|
[JPA] JPA Lock의 개념과 사용 (0) | 2023.09.11 |
[JPA] 고아 객체 제거(OrphanRemoval) (0) | 2023.09.10 |
[JPA] Cascade. 영속성 전이 (0) | 2023.09.10 |
[JPA] JPA - MySQL 연동 (0) | 2023.09.10 |