-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathHeart.java
More file actions
49 lines (40 loc) · 1.19 KB
/
Heart.java
File metadata and controls
49 lines (40 loc) · 1.19 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
package com.example.devSns.Heart;
import com.example.devSns.Member.Member;
import com.example.devSns.Post.Post;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Table(
name = "heart",
indexes = {
@Index(name ="idx_heart_post_liked", columnList = "post_id , like_status")
}
)
public class Heart {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name ="post_id")
private Post post;
@ManyToOne
@JoinColumn(name = "member_id")
private Member member;
// 하나의 포스트 id를 가진 인스턴스의 수가 좋아요가 됨. 이를 영속화 단계에서 계산하는 게 좋을 거 같은데.
// 리포지터리에 메소드로 계산하면 되겠지?
@Column(name ="like_status", nullable = false)
private boolean liked;
public Heart(Post post, Member member, boolean like) {
this.post = post;
this.member = member;
this.liked = like;
}
public void toggleLike() {
this.liked = !this.liked;
}
}