MakerHyeon

[springBoot] 구독하기 -연관관계와 모델만들기 본문

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> {

}
Comments