강의

멘토링

커뮤니티

Inflearn Community Q&A

hjhjhj3770217732's profile image
hjhjhj3770217732

asked

Spring MVC Part 2 - Backend Web Development Utilization Technology

join the membership

id에 @NotEmpty를 한다면

Written on

·

439

·

Edited

0

@Data
public class Member {
    @NotEmpty
    private Long id; 
    @NotEmpty
    private String loginId; //로그인 ID
    @NotEmpty
    private String name; //사용자 이름
    @NotEmpty
    private String password;
}

제가 실수로 id에 @NotEmpty를 하니까 회원가입 버튼을 눌렀더니 오류가 났습니다.

오류가 나는 이유는 id의 오류처리를 안해서라고 생각하는 데 만약에 오류처리를 해야한다면

MemberRepository의

@Slf4j
@Repository
public class MemberRepository {
    private static Map<Long, Member> store = new HashMap<>(); //static 사용
    private static long sequence = 0L; //static 사용

    public Member save(Member member) {
        member.setId(++sequence);
        log.info("save: member={}", member);
        store.put(member.getId(), member);
        return member;
    } 

save() 메소드에서 하면 되는 걸까요??

(id는 다른 필드들과 다르게 html에서 처리할 수 없으니까??)

아니면 id는 데이터베이스에 들어가는 거니까 애초에 @NotEmpty 를 사용하면 안된다 라고 생각해야 건가요?? (개발자가 직접 입력한 것이 아니니까?)

답변주시면 정말 감사하겠습니다.

springmvc

Answer 1

0

안녕하세요. 코딩먹는하마님, 공식 서포터즈 OMG입니다.
.

회원가입할 때 id는 비어있는게 맞고, 올리신 코드의 save 메서드에서 Id가 부여됩니다.

저라면 회원가입을 위한 MemberForm을 만들되, id와 같이 후속 프로세스가 진행되어야 값이 세팅되는 id 필드는 제거하고 화면단에서 정말로 입력을 받거나, 값이 채워져야하는 필드로만 구성을 하고

회원 엔티티는 별도로 생성하여 개발할 것 같습니다.

Member클래스가 회원가입을 위한 객체로 사용이 되기 때문에 발생한 상황입니다.

말씀 드린 것처럼 별도의 클래스를 구성하는 방법을 생각해보시면 될 것 같습니다.
.
감사합니다.

hjhjhj3770217732's profile image
hjhjhj3770217732

asked

Ask a question