My Melody Is Cute Spring MVC JPA
본문 바로가기

개발공부🌷/Spring MVC

Spring MVC JPA

JPA(Java Persistence API)

Java진영에서 사용하는 ORM 기술의 표준사양

데이터 액세스 계층의 상단에 위치

 

더보기

JPA는 자바에서 관계형 데이터베이스와의 상호작용을 위한 API이다.

객체관계매핑(ORM)을 지원하여 개발자가 객체지향프로그래밍 언어인 자바로 데이터베이스와 상호작용할 수 있도록 도와준다.

 

JPA를 사용하면 개발자는 객체를 데이터베이스에 저장하고 검색하는 등의 작업을 SQL 쿼리를 직접 작성하는 대신 자바 객체를 사용하여 수행할 수 있다. (객체와 데이터베이스 사이의 변환을 자동 처리)

이를 통해 객체모델과 데이터베이스 스키마 간의 매핑이 자동으로 처리되어 개발자가 더 직관적이고 유연한 코드를 작성할 수 있게 된다.

 

Hibernate는 가장 널리 사용되는 JPA 구현체 중 하나로, 강력한 기능과 커뮤니티 지원을 제공한다.

 

JPA라는 표준사양을 구현한 구현체는 따로 있다.

Hibernate ORM,EclipseLink,DataNucleus등등

 

데이터저장, 조회등의 작업은 JPA를 거쳐

JPA의 구현체인 Hibernate ORM을 통해서 이루어짐

 


영속성 컨텍스트(Persistence Context)

테이블과 매핑되는 엔티티 객체 정보를 보관

애플리케이션 내에서 오래 지속되게 하고 데이터 테이블에 데이터를 CRUD

 

@Configuration 스프링 클래스 설정

@Bean 빈 정의

@NoArgsConstructor 파라미터가 없는 기본생성자 추가해줌


엔티티 - 테이블 매핑

@Entity 

JPA 관리대상 엔티티가 된다

엔티티 클래스와 테이블 매핑하는 애너테이션, @Id와 함께 사용

final 클래스,enum,interface,inner 클래스에 사용 x

 

기본키 매핑

@Id

기본키 컬럼 설정

@GeneratedValue

기본키 식별자 자동설정

 

영속성 컨텍스트에서 Id 1 , email 조회

JPA가 내부적으로 테이블자동생성,기본키 할당


1차캐시 / 쓰기 지연 SQL저장소로 구분

 

JPA API 중 em.persist()  사용하면 1차캐시에 엔티티정보 저장

tx.commit()을 하는 순간 쓰기 지연 SQL저장소에 등록된 INSERT쿼리가 실행되고 실행된 쿼리는 쓰기지연 SQL저장소에서 제거된다

 

em.find() 를 호출하면 1차캐시에 해당객체가 있는지 조회하고

없으면 테이블에 SELECT쿼리를 전송해서 조회한다

 

 

 

'개발공부🌷 > Spring MVC' 카테고리의 다른 글

Spring MVC 트랜잭션(Transaction)  (0) 2023.12.05
Spring MVC JPA 2  (0) 2023.11.28
Spring MVC Data JPA  (0) 2023.11.27
Spring MVC 예외처리  (0) 2023.11.23
Spring MVC 서비스계층 ,Mapper  (0) 2023.11.23