728x90
반응형
SMALL
05/26
36강
연관관계 개념잡기
1. FK는 Many가 가져간다.
Many(게시글) to One (사용자)
One이 FK를 가지게 되면 게시글1,게시글2 여러개가 담김 -
2. N : N의 관계는 중간테이블(1)이 생긴다.
N : 1 : N
N(사용자) : 1(예매) : N(영화)
N(사용자 : 1(구독) : N(사용자)
Subscribe Table (FK 가짐)
ID ㅣ 구독하는 유저 ㅣ구독받는 유저

unique 제약조건 1개만 걸 경우
@Column(length = 20, unique = true)
private String username;
unique 제약조건 2개 걸 경우
@Table(
uniqueConstraints = {
@UniqueConstraint( //제약조건
name = "subscribe_uk",
columnNames = {"fromUserId", "toUserId"}
)
}
)
38강
@Modifying // INSERT, DELETE, UPDATE를 네이티브 쿼리로 작성하려면 해당 어노테이션 필요
@Query(value="INSERT INTO subscribe(fromUserId, toUserId, createDate) VALUES(:fromUserId, :toUserId, now())", nativeQuery = true) // 변수 바인딩
int mSubscribe(int fromUserId, int toUserId); // 성공시 1(변경된 행의 개수가 리턴됨), 실패시 -1
JPA에서 직접 쿼리를 작성할 수 있는 방법
- JPQL로 작성 - 엔티티 클래스를 바라보고 작성, nativeQuery = false (default)
- 일반 SQL로 작성 - 데이터베이스를 바라보고 작성, nativeQuery = true
JPQL : JPA의 일부분으로 정의된 플랫폼 독립적인 객체지향 쿼리 언어
728x90
반응형
LIST
'Spring Boot > 인스타그램 클론코딩' 카테고리의 다른 글
| 세션 정보, 시큐리티 태그 라이브러리 (0) | 2022.04.18 |
|---|---|
| 유효성 검사 (0) | 2022.04.07 |
| SecurityConfig, CSRF 토큰 (0) | 2022.03.30 |
| Spring Boot 쿼리스트링, 주소 변수 매핑, HTTP Header, HTTP 요청, 톰캣, JSP, Mustache, HTTP 상태코드 (0) | 2022.03.27 |
댓글