Post

ORM

1. ORM 개념 이해하기

  • 데이터 영속성
    • Persistence : 프로그램이 종료되었다고 해서 자료가 사라지진 않음
  • 종류
    • SQL Mapper
      • SQL을 개발자가 직접 작성
      • 매핑 : 쿼리 수행 결과 ↔ 객체
      • DB 종류 변경 시 쿼리 수정 필요
      • 비슷한 쿼리를 반복적으로 작성해야 함
    • ORM (Object Relation Mapping)
      • Object와 DB테이블을 매핑
      • java 함수를 사용하면 자동으로 SQL이 만들어짐
      • 매핑 : DB테이블 ↔ 객체
      • 복잡한 쿼리를 자바 메소드 만으로 해결하는것이 불편
  • Persistence Framework
    • DB와의 연동되는 시스템을 빠르게 개발하고, 안정적인 구동을 보장해주는 프레임워크
    • 장점 :
      • 재사용 및 유지보수에 용이
      • 직관적인 코드

2. JPA vs JDBC

Untitled 5

  • JDBC
    • SQL Mapper 중 하나

Untitled 6

  • JPA (Java Persistent API)
    • ORM 중 하나 (자바용 ORM)

Untitled 7

Untitled 8

Untitled 9

  • (추가) GeneratedValue

    • GenerationType.AUTO
      • 방언에 따라 자동으로 기본 값으로 지정합니다.
    • GenerationType.IDENTITY
      • 기본 키 생성을 데이터베이스에 위임한다. MySQL에서 많이 씁니다.
    • GenerationType.SEQUENCE
      • 데이터 베이스 오브젝트를 이용합니다. 데이터베이스 시퀀스를 사용해서 기본 키를 할당합니다. 추가적인 어노테이션으로 @SequenceGenerator 필요합니다. ORACLE에서 많이 사용합니다.
    • GenerationType.TABLE
      • 별도의 키 생성 테이블을 사용합니다. 모든 DB에서 사용가능합니다. @TableGenerator 필요합니다. ddl-auto가 아닌 경우, 별도의 Table을 생성해야 합니다.
1
2
3
4
5
6
7
8
9
10
11
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Entity(name = "example")
public class Example {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String text;
}
This post is licensed under CC BY 4.0 by the author.