[Spring] 사이트 제작 도전 4 (데이터 클래스 만들기)

PersesTitan·2022년 6월 2일
0

Spring

목록 보기
33/48

우선 회원가입을 만들 데이터 클래스를 만들생각입니다. 우선 간단하게 회원 클래스(Member)와 게시판 클래스(Board)를 만들볼 생각입니다.

Member 클래스

@Entity @Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Member {

    @Id @GeneratedValue
    @Column(name = "member_id")
    private Long id;

    @Setter @NotNull
    private String nickname;
    @Setter @NotNull
    private String password;
    @NotNull
    private String loginId;
    @NotNull
    private LocalDateTime createDate;

    @Setter
    private String email;

    private Member(String nickname, String loginId, String password, String email) {
        this.nickname = nickname;
        this.loginId = loginId;
        this.password = password;
        this.email = email;
        this.createDate = LocalDateTime.now();
    }

    //생성 로직
    public static Member createMember(String nickname, String loginId, String password, String email) {
        return new Member(nickname, loginId, password, email);
    }
}

Board 클래스

@Entity @Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Board {

    @Id @GeneratedValue
    @Column(name = "board_id")
    private Long id;

    @NotNull @Setter
    private String title;
    @NotNull @Setter
    private String content;

    @ManyToOne(fetch = LAZY)
    @JoinColumn(name = "member_id")
    private Member member;

    private LocalDateTime createdDate;

    private Board(Member member, String title, String content) {
        this.member = member;
        this.title = title;
        this.content = content;
        this.createdDate = LocalDateTime.now();
    }

    //생성 메소드
    public static Board createBoard(Member member, String title, String content) {
        return new Board(member, title, content);
    }

}
  • @Setter - Setter를 만들어줌
  • @Getter - Getter를 만들어줌
  • @Entity - 엔티티로 선언해줌
  • @Id - id를 PK로 만든다고 선언함
  • @GeneratedValue - 설정값에 달라지지만 기본값이 AUTO(auto increment)라서 id를 auto increment로 설정됨
  • @NotNull - NN으로 선언

  • @Column(name = "컬럼명") - 기본값으로는 파라미터명으로 정히지지만 변경하고 싶으면 해당 어노테이션을 사용하면된다.
  • @Table(name = "테이블명") - 기본값으로는 클래스명이 지정되지만 변경하고 싶으면 해당 어노테이션을 사용하면된다.

우선은 생성자를 함부로 만들지 못하게 create메소드를 이용하여 생성할 생각입니다.
그리고 나중에 값이 변경될 수 도 있는 값은 Setter를 붙여주었습니다.


코드 링크

profile
안녕하세요 페르세스 티탄입니다! 부족한 부분이 많이 있겠지만 잘부탁드립니다.

0개의 댓글