본문 바로가기
Spring Boot/JPA

[Spring][JPA] JPA란?

by Lee David 2022. 9. 14.
반응형
Persistence Layer - 영속성 계층

Spring 에서 DAO 객체를 사용하여 Database와 커넥션 등을 유지하는 것을 이야기 합니다.

Mybatis와 JPA에서의 가장 큰 차이점을 따지고 본다면 DAO interface를 만들지 않고 JpaRepository 를 상속 받아 사용하게 됩니다.

이렇게 되면 가장 큰 이점으로 xml등의 파일을 따로 관리 하지 않고 Repository 내에서 Query를 조합하여 좀 더 직관적이고 객체 관점의 쿼리등이 가능해 집니다.

Query 방법

예약되어 있는 query를 메서드 형태로 바로 불러와 사용도 가능하고 @Query annotation을 사용하여 native query 혹은 DTO 객체를 만들수도 있습니다.

// 1. 예약 Query
findAll(); // 모든 데이터를 SELECT 합니다.
saveAll(Object o); // 모든 데이터를 update/insert 합니다.
deleteAll(); // 모든 데이터를 삭제 합니다.

// 2. 네이티브 쿼리 사용
@Query(nativeQuery = true, value = "쿼리")

// 3. DTO 쿼리
@Query(value = "SELECT new DTO(column1, column2, ...)")
트랜젝션

DB 내에 있는 데이터의 일관성을 위해 모든 database에서 기용하는 단위로 Spring에서 jpa를 사용하게 되면 메서드 혹은 클래스 위에 "@Transactional" annotation을 사용하면 쉽게 트랜젝션 처리가 가능합니다.

출처
https://www.baeldung.com/the-persistence-layer-with-spring-data-jpa

 

반응형

'Spring Boot > JPA' 카테고리의 다른 글

[Spring][JPA] DTO로 조회 하기  (0) 2022.10.11
[Spring][JPA] Transactional Annotation  (0) 2022.09.15