dto에 toentity 만들어서 빌더로 값을 넣어준다. 이렇게 하면 dto를 entity로 사용할 수 있다.

@Data
public static class JoinDTO {
    private String username;
    private String password;
    private String email;

    public User toEntity() {
        return User.builder()
                .username(username)
                .password(password)
                .email(email).build();
    }
}

빌더 선언

@Builder
public User(Integer id, String username, String password, String email, Timestamp createdAt) {
    this.id = id;
    this.username = username;
    this.password = password;
    this.email = email;
    this.createdAt = createdAt;
}

리포지토리

@Transactional
public User save(User user) {
    em.persist(user);
    return user;
}

컨트롤러 작성

@PostMapping("/join")
public String join(UserRequest.JoinDTO requestDTO) {
    User sessionUser = userRepository.save(requestDTO.toEntity());
    session.setAttribute("sessionUser", sessionUser);
    return "redirect:/";
}

Untitled

Untitled

잘들어감

회원가입이 되면 바로 로그인 된 상태로 메인 페이지로 넘어가진다.