인프런 커뮤니티 질문&답변
스프링 delete 매개변수없이 구현
작성
·
418
·
수정됨
0
스프링에서 delete를 구현할때 보통 id값으로 deleteById() 이런식으로 구현하는데
매개변수를 사용하지않고 구현하는 방법이 있을까요?
어떠한 매개변수도 없이 user.delete() 이런식으로요
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
스프링에서 delete 작업을 수행할 때 보통 id 값을 매개변수로 전달하여 deleteById() 메소드를 사용합니다. 하지만 매개변수 없이 구현하는 방법이 있습니다.
매개변수 없이 delete 작업을 수행하려면, delete() 메소드를 사용하면 됩니다. 이때 delete() 메소드는 현재 객체를 삭제하는 메소드입니다. 이를 사용하기 위해서는 먼저 삭제할 객체를 가져와야 하며, 이 역시 id 값으로 가져올 수 있습니다.
예를 들어, User 테이블의 전체 데이터를 삭제하고자 할 경우 다음과 같이 코드를 작성할 수 있습니다.
userRepository.findAll().forEach(user -> {
userRepository.delete(user);
});
위 코드에서는 userRepository.findAll() 메소드를 사용하여 User 테이블의 전체 데이터를 조회하고, 조회된 데이터를 forEach() 메소드를 사용하여 삭제합니다. 이때 forEach() 메소드는 람다식으로 작성하여 한줄로 작성할 수도 있습니다.
물론 위 방법은 모든 데이터를 삭제하는 것이므로 사용에 유의해야 합니다. 원하는 데이터만 삭제할 수 있도록 id 값을 이용하여 deleteById() 메소드를 사용하는 것이 안전할 것입니다.
도움이 되었길 바랍니다. 감사합니다.




