관심 주제 (Tag)는 엔티티인가? 벨류인가?
- 엔티티다. 왜? 태그 독자적인 라이프사이클이 있고 다른 곳(Study)에서도 참조할 테니까.
Tag엔티티
- Id
- Title (unique)
객체 관점에서의 관계
- MayToMany
- Account에서 Tag를 참조 (단방향)
릴레이션 DB 관점에서의 관계
- 조인 (join) 테이블을 사용해서 다대다 관계를 표현.
- Account_Tag에서 Account의 PK 참조.
- Account_Tag에서 Tag의 PK 참조.
Tag엔티티 생성
package me.weekbelt.studyolle.domain;
@Builder @AllArgsConstructor @NoArgsConstructor
@Getter @Setter @EqualsAndHashCode(of = "id")
@Entity
public class Tag {
@Id @GeneratedValue
private Long id;
@Column(unique = true, nullable = false)
private String title;
}
Account엔티티와 Tag엔티티의 다대다 단방향 연관관계 설정(연관관계의 주인은 Account)
package me.weekbelt.studyolle.domain;
@Builder @AllArgsConstructor @NoArgsConstructor
@Getter @Setter @EqualsAndHashCode(of = "id")
@Entity
public class Account {
// 기존 코드 .....
@ManyToMany
private Set<Tag> tags;
// 기존 코드 .....
}
참고: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-JPA-%EC%9B%B9%EC%95%B1#
스프링과 JPA 기반 웹 애플리케이션 개발 - 인프런
이 강좌에서 여러분은 실제로 운영 중인 서비스를 스프링, JPA 그리고 타임리프를 비롯한 여러 자바 기반의 여러 오픈 소스 기술을 사용하여 웹 애플리케이션을 개발하는 과정을 학습할 수 있습니다. 이 강좌를 충분히 학습한다면 여러분 만의 웹 서비스를 만들거나 취직에 도움이 될만한 포트폴리오를 만들 수 있을 겁니다. 활용 웹 개발 프레임워크 및 라이브러리 Java Spring Spring Boot Spring Data JPA Thymeleaf 온라인 강의 스
www.inflearn.com
'스프링과 JPA 기반 웹 어플리케이션 개발 > 2부(관심 주제와 지역 정보)' 카테고리의 다른 글
37. 관심 주제 자동완성 (0) | 2020.04.22 |
---|---|
36. 관심 주제 삭제 (0) | 2020.04.22 |
35. 관심 주제 조회 (0) | 2020.04.22 |
34. 관심주제 등록하기 (0) | 2020.04.22 |
32. 관심 주제와 지역 정보 관리 기능 미리보기 (0) | 2020.04.22 |