-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathMember.java
More file actions
55 lines (41 loc) · 1.56 KB
/
Member.java
File metadata and controls
55 lines (41 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.example.devSns.domain;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Entity
@Getter
@NoArgsConstructor
@AllArgsConstructor // Builder 패턴 사용 시 필요
@Builder // ★ 클래스 레벨에 추가하여 builder() 메서드 자동 생성 ★
@Table(name = "members")
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String username; // 로그인 ID
@Column(nullable = false)
private String password;
@Column(nullable = false, unique = true)
private String nickname;
@Enumerated(EnumType.STRING)
private Authority authority; // 권한
@OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE, orphanRemoval = true)
@Builder.Default // Builder 사용 시 초기화 값을 유지하기 위해 필요
private List<Post> posts = new ArrayList<>();
@OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE, orphanRemoval = true)
@Builder.Default
private List<Comment> comments = new ArrayList<>();
@OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE, orphanRemoval = true)
@Builder.Default
private List<PostLike> likes = new ArrayList<>();
public Member(String username, String password, String nickname) {
this.username = username;
this.password = password;
this.nickname = nickname;
}
}