@Getter
=> 자동으로 Get 메소드 생성해줍니다.
@NoArgsConstructor
=> 파라미터가 없는 기본 생성자를 생성해줍니다.
@Entity
=> JPA에서 DB 테이블에 대응하는 하나의 클래스입니다.
@Entity가 붙은 클래스는 JPA가 관리해주며, JPA를 사용해서 DB 테이블과 매핑할 클래스는 @Entity를 꼭 붙여야만 매핑이 가능합니다.
@Id
=> 기본 키 직접 할당
@GeneratedValue(strategy = GenerationType.IDENTITY)
@GeneratedValue(strategy = GenerationType.IDENTITY)
=> 기본 키 생성을 데이터베이스에 위임
즉, id 값을 null로 하면 DB가 알아서 AUTO_INCREMENT 해준다.
@ManyToOne(fetch=FetchType.EAGER)
@ManyToOne(fetch = FetchType.EAGER)
=> 클래스와 다대일 관계로 매핑되어있는 상태에서 즉시 로딩을 사용한다.
지연 로딩 : FetchType.LAZY
즉시 로딩을 많이 사용하면 조인이 다수 발생해서 예상치 못한 SQL이 발생하기 때문에 실무에서는 거의 지연 로딩을 사용한다.
@JoinColumn
=> 외래키 매핑시 사용하며 name 속성에는 매핑할 외래키 이름을 지정해줍니다.
FK를 관리하는 객체가 @JoinColumn을 사용하고 연관관계의 주인이 됩니다.
@Column
@Column은 객체 필드를 테이블의 컬럼에 매핑시켜주는 어노테이션입니다.
@Lob
데이터베이스의 BLOB, CLOB 타입과 매핑합니다.
@Lob에는 지정할 수 있는 속성이 없습니다.
대신에 매핑하는 필드 타입이 문자면 CLOB이고, 나머지는 BLOB으로 매핑됩니다.
(Lob은 Large Object의 줄임말입니다)
CLOB : 문자 대형 객체,
BLOB : 이진 대형 객체 (이미지, 동영상 등등)
@Lob 주석은 @Basic 혹은 @ElementCollection 과 함께 사용할 수 있습니다.
@Builder
객체 생성에서 주입하는 것에 대한 방식으로 빌더 패턴을 사용하면 각 인자에 대한 파라미터 주입이 명확해집니다
파라미터가 많을 경우 가독성을 올려줍니다.
@Builder
public Event(Long id, String title, String content, char deleteYn, User user){
this.id = id;
this.title = title;
this.content = content;
this.deleteYn = deleteYn;
this.user = user;
}
<참고 링크>
https://data-make.tistory.com/611
[JPA] 연관관계 매핑이란.?
| 연관관계 매핑 객체의 참조와 테이블의 외래 키를 매핑 방향 (Direction) : 단방향, 양방향 방향은 객체관계에만 존재하고 테이블 관계는 항상 양방향 다중성 (Multiplicity) : 다대일, 일대다, 일대일
data-make.tistory.com
https://clack2933.tistory.com/23#%EC%9D%BC%EB%8C%80%EB%8B%A4
06 연관관계 Mapping 종류
다중성과 연관관계 종류 N : 1 (다대일) @ManyToOne 1 : N (일대다) @OneToMany 1 : 1 (일대일) @OneToOne N : M (다대다) @ManyToMany 다대일 현재 객체는 하나의 객체를 참조할 수 있는 구조 1, 단방향 @Entity..
clack2933.tistory.com
https://ttl-blog.tistory.com/114
[JPA] 필드와 컬럼 매핑 - @Column
@Column @Column은 객체 필드를 테이블의 컬럼에 매핑시켜주는 어노테이션입니다. 속성 속성 기능 기본값 name 필드와 매핑할 테이블의 컬럼 이름을 지정한다. 객체의 필드 이름 insertable (거의 사용하
ttl-blog.tistory.com
https://pamyferret.tistory.com/67
빌더 패턴(Builder pattern)을 써야하는 이유, @Builder
빌더 패턴(Builder pattern)이란? 객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것을 생각한다. Bag bag = new Bag("name", 1000, "memo"); 하지만 생성자를 통해 객체를 생성하는데 몇 가
pamyferret.tistory.com
'PROJECT > DocViewer_Web' 카테고리의 다른 글
Lazy, Eager 사용시 JSON 오류 (0) | 2022.09.08 |
---|---|
자바 웹용어 분석하기 - 22.09.05 (0) | 2022.09.06 |
자바 웹용어 분석하기 - 2022.09.02 (1) | 2022.09.02 |
웹용어 분석중 -thymeleaf, dao, dto, jsp..... (0) | 2022.08.25 |
onload, fetch, promise, ... 웹 용어 기본 개념 분석중.. (0) | 2022.08.22 |