🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Put 질문 있습니다.

21.03.07 20:10 작성 조회수 120

1

업데이트가 되긴 되는데... 이거 말고 다른방법으로 해야하나요.. 다른 답글 보니까 다른방법있던데 

Repository 사용 하시는데 어떻게 해야할지 모르겠어요... 

답변 1

답변을 작성해보세요.

1

안녕하세요, 이도원입니다. 

service.updateById() 메소드에서 사용하는 데이터들은 List<User>에 저장된 데이터를 사용하고 있습니다. 순차적으로 데이터를 저장하게 되는 자바 Collections 중 하나입니다. List에 값을 저장할 때는 키를 지정하지 않고 순차적으로 인덱스가 할당되기 때문에, 삭제하기 위해서는 정확한 Object의 값이나 인덱스가 필요합니다. 

작업하신 내용은 List에 저장된 객체의 ID 값을 비교하고 있기 때문에, 모든 데이터를 순차적으로 비교해야 합니다. List 이외에 Map을 사용하신 다면 Key, Value 형식으로 저장할 수 있으나, Ordering이 안되기 때문에, TreeMap과 같은 Collections을 사용하셔야 할수도 있습니다. 

더 좋은 방법은 List 형식 말고 JPA나 Mybatis 등을 이용해서 DB에 저장된 데이터를 UPDATE 구문으로 수정하는 방법입니다. 강의 내용중 UserJPAController에서 추가해 보시면 좋을 것 같습니다. 

감사합니다. 

채널톡 아이콘