Framework/Spring Boot

[Error] The given id must not be null!; nested exception is java.lang.IllegalArgumentException: The given id must not be null!

잔망루피 2022. 1. 26. 20:55
@Test
public void joinUser(){
    //given
    User user1=new User();
    user1.setUsername("spring00");
    user1.setEmail("abc@naver.com");
    user1.setEnabled(true);
    user1.setName("스프링");
    user1.setPassword("lovespring00!");
    user1.setPhone("01012345678");
    user1.setRoles(new ArrayList<Role>());

    // when
    userService.joinUser(user1);

    // then
    User findUser=userRepository.findById(user1.getId()).get();		// 에러가 발생한 부분
    assertThat(user1.getName()).isEqualTo(findUser.getName());
    assertThat(user1.getUsername()).isEqualTo(findUser.getUsername());
    assertThat(user1.getPassword()).isEqualTo(findUser.getPassword());
    assertThat(user1.getEmail()).isEqualTo(findUser.getEmail());
    assertThat(user1.getPhone()).isEqualTo(findUser.getPhone());
}
org.springframework.dao.InvalidDataAccessApiUsageException: The given id must not be null!; nested exception is java.lang.IllegalArgumentException: The given id must not be null!

user1.getId()에서 발생함

userRequestDto 타입을 받아서 회원가입

UserService단에서 데이터베이스에 저장하기 전에 toEntity() 메소드로 User 타입으로 변환

즉, User 타입 객체가 필요하다.

 

 

✨ 해결

User user=userRequestDto.toEntity();
userService.joinUser(user);

 

컨트롤러에서는 toEntity 메소드를 이용해 UserRequestDto에서 User로 변경해서 joinUser 메소드에 보냈다.

 

 

 

반응형