본문 바로가기
🍃SpringFrameworks/SpringDataJPA

[JPA] 주요 개념

by inbeom 2023. 9. 10.
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