❄️ 내일배움캠프 7기

[Trouble Shooting] 은행 환전 개인과제

Genie_. 2024. 11. 29. 14:05
728x90
반응형

깃허브

https://github.com/gxnie/sample_user_currency

 

GitHub - gxnie/sample_user_currency

Contribute to gxnie/sample_user_currency development by creating an account on GitHub.

github.com


1. findExchangeById(id) 메서드의 역할

  • findExchangeById(id) 메서드는 요청된 ID로 환전 요청을 조회해서 Exchange를 반환
  • 만약 요청된 ID에 해당하는 환전 요청이 존재하지 않으면, 예외를 발생
    • 예외 처리: 환전 요청이 존재하지 않으면 IllegalArgumentException을 던진다.
public Exchange findExchangeById(Long id){
        // 특정 id에 해당하는 Exchange를 반환하는 코드
        return exchangeRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("해당하는 정보가 없습니다."));
    }

 

2. 환전 요청 삭제

  • exchangeRepository.deleteById(id)는 환전 요청을 삭제
  • 데이터베이스에서 해당 ID의 Exchange 객체를 삭제
  • 주의 사항: 삭제 작업을 호출하기 전에 조회가 제대로 되는지 확인해야함
 // D -> 고객 삭제(user Delete있음) + 모든 환전 요청도 삭제
    @Transactional
    public void deleteExchangeById(Long id) {
        // 1. id로 환전 요청을 조회
        // 만약 id에 해당하는 환전 요청이 없으면 예외가 발생 -> 트랜잭션 처음으로 돌아간다..?
        // 환전 요청을 찾기 위해 호출
        this.findExchangeById(id);

        // 2. 환전 요청을 삭제
        // exchangeRepository.deleteById(id) : 해당 id 환전 요청을 DB에서 삭제
        exchangeRepository.deleteById(id);
    }

참고 자료

https://velog.io/@dhkim1522/Spring-JPA-%EC%98%AC%EB%B0%94%EB%A5%B8-Entity-%EC%82%AC%EC%9A%A9%EB%B2%95

https://velog.io/@wonizizi99/SpringData-JPA-Auditing

https://velog.io/@heejung/Spring-JPA-%EC%97%94%ED%8B%B0%ED%8B%B0%EC%99%80-%EB%A7%A4%ED%95%91-Entity-Table-Column-Id-GeneratedValue

https://velog.io/@ghkdwp018/Setter-%EB%8C%80%EC%B2%B4%ED%95%98%EA%B8%B0

https://kylo8.tistory.com/entry/JPA-JPA-%EC%98%81%EC%86%8D%EC%84%B1-%EC%A0%84%EC%9D%B4%EB%9E%80-CASCADEALL-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-%ED%8E%B8%EC%9D%98-%EB%A9%94%EC%86%8C%EB%93%9C%EB%9E%80

https://velog.io/@pp8817/Web-server-failed-to-start.-Port-8080-was-already-in-use

 

 

 

728x90
반응형