[JPA 기본] - 영속성 관리

Sunwu Park·2023년 12월 29일

Inflearn - Spring

목록 보기
10/21

JPA는

  • 특정 데이터베이스에 종속 X
  • 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금식 다르다
    - 가변 문자: MySQL은 VARCHAR, Oracle은 VARHCAR2
    • 문자열 자르는 함수: SQL: SUBSTRING, Oracle: SUBSTR
    • 페이징: MySQL: LIMIT, Oracle: ROWNUM

Database 방언

  • hibernate.dialect 속성에 지정

JPA 구동 방식

  • 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유
  • 엔티티 매니저는 쓰레드간에 공유X (사용하고 버려야 한다).
  • JPA의 모든 데이터 변경은 트랜잭션 안에서 실행

객체와 테이블 생성후 매핑

  • @Entity: JPA가 관리할 객체
  • @Id: 데이터베이스 PK와 매핑

JPQL

  • JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공
  • SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원
  • JPQL은 엔티티 객체를 대상으로 쿼리
  • SQL은 데이터베이스 테이블을 대상으로 쿼리
  • 객체를 대상으로 검색하는 객체 지향 쿼리

0개의 댓글