SpringBoot
[springBoot] 구독하기 -연관관계와 모델만들기
유쾌한고등어
2023. 1. 8. 15:58
구독하기 -연관관계와 모델만들기
- 연관관계 개념
- fk의 주인은 many쪽으로 간다.(FK는 Many가 가져간다.)
- N:N의 관계는 중간 테이블이 생긴다.(N:1,1:N) (ex)_구독하는유저/구독받는유저
1. subscribe package 생성후, 해당 패키지에 subscribe파일생성
- 오브젝트를 만들고 이에따라 Entity가 만들어진다.
- 스키마를 만들땐 ddl-auto를 create로 만들어야...새로생김에 주의!
- @UniqueConstraints 를 통한 중복 방지를 해준다.
// subscribe.java
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@Entity
@Table(
uniqueConstraints = {
@UniqueConstraint(
name="subscribe_uk",
columnNames = {"fromUserId","toUserId"}
)
}
)
public class Subscribe {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@JoinColumn(name="fromUserId") // DB column명 지정
@ManyToOne
private User fromUser;
@JoinColumn(name="toUserId")
@ManyToOne
private User toUser;
private LocalDateTime createDate;
@PrePersist
public void createDate(){
this.createDate = LocalDateTime.now();
}
}
2. 해당 Repository생성
// SubscribeRepository.java
public interface SubscribeRepository extends JpaRepository<Subscribe,Integer> {
}