JPA, Lombok 개념 및 어노테이션(@) 정리

Chanyang Im·2022년 8월 12일
0

Java

목록 보기
14/14

JPA

JPA란

JPA : Java 표준 Interface
Hibernate : JPA 구현체 중 하나 (가장 많이 쓰는 구현체)
Spring Data JPA : JPA를 스프링에 맞추어 추상화한 기술

JPA 어노테이션

@Entity : 테이블과 매핑할 클래스에 붙여주는 어노테이션
@Table : 엔티티와 매핑할 테이블을 지정
@ID : Primary key로 지정
@GeneatedValue: 기본값을 DB에서 자동으로 생성하는 전략을 사용할 수 있다.
@Column : 객체 필드를 테이블 컬럼과 매핑한다.
@Enumerated : 자바 enum 타입을 매핑할 떄 사용한다.
@Access : JPA가 엔티티 데이터에 접근하는 방식을 지정
@Temporal : 날짜 타입을 매핑할 떄 사용한다.
@Lob : BLOB, CLOB 타입과 매핑
@Transient : 이 어노테이션을 붙인 필드는 DB에 저장하지도 조회하지도 않는다.

@OneToOne : 일대일
@ManyToOne : 다대일
@OneToMany : 일대다 (거의 양방향일 때 사용)
@ManyToMany: 다대다
@JoinColumn : Join할 컬럼과 관련한 어노테이션
*mappedBy : 양방향일 때 사용하는 속성 (mappedBy가 없는 쪽이 연관관계의 주인, 주인쪽에 foreign key가 생성된다)

Lombok

Lombok이란

Lombok : Java의 라이브러리로 반복되는 메소드를 Annotation 을 사용해서 자동으로 작성해주는 라이브러리이다. Java 코드를 짤 때 반복적으로 생성하는 소스 작성을 줄일 수 있다.

Lombok 어노테이션

@Getter : getter를 만들어준다. (boolean이면 isFiledName)
@Setter : setter를 만들어준다.
@NoArgsConstructor : 매개변수를 받지 않는 생성자를 만들어준다.
@AllArgsConstructor : 클래스의 모든 멤버 변수를 매개변수로 받는 생성자를 만들어 준다.
@RequireArgsConstructor : final이나 @NotNull인 필드 값만 파라미터로 받는 생성자를 만들어준다.
@ToString : toString() 메서드 구현
@Builder : 빌더 패턴을 적용한 객체 생성 메서드를 만들어준다. (클래스의 멤버변수의 수가 많거나, 복잡한 클래스에 경우 빌터 패턴을 이용하면 좋다)

profile
안녕하세요!! 세상에 관심이 많은 공학자입니다!😆

0개의 댓글