JPA란?
- Java Persistence API
- 자바 진영의 ORM 표준 기술
- JPA는 인터페이스 모음
- Hibernate, EclipseLink, DataNucleus 3가지 구현체 사용
JPA를 사용해야 하는 이유
- SQL 중심적인 개발에서 객체 중심으로 개발
- 생산성, 유지보수 편리함 / 성능 최적화 기능
1. 1차 캐시와 동일성(identity) 보장
2. 트랜잭션을 지원하는 쓰기 지연
3. 지연 로징(Lazy Loading)
- 패러다임 불일치 해결
JPA - CRUD
- Create(저장): jpa.persist(. . .)
- Read(조회): jpa.find(. . .)
- Update(수정): member.setName(". . .")
- Delete(삭제): jpa.remove(. . .)
JPA 동작방식
저장
조회
ORM이란?
- Object Realational Mapping
- 객체는 객체대로, 관계형 데이터베이스는 관계형 데이터베이스로 설계
- ORM 프레임워크가 중간에서 매핑
Spring Data JPA란?
- spring framework에서 JPA를 좀 더 편리하게 사용할 수 있도록 제공하는 모듈이다.
- Spring Data JPA는 Hibernate와 같은 JPA 구현체를 사용해 JPA를 사용하게 된다.
- Spring Data JPA를 사용하면 더욱 간단하게 데이터 접근이 가능해진다.
Spring Data JPA 기능
메서드 이름으로 쿼리 생성
public interface MemberRepository extends Repository<Member, Long>{
List<User> findByEmailAndName(String email, String name);
}
@Query
//인터페이스에 쿼리 작성 가능
public interface Userrepository extends JpaRepository<User, Long>{
@Query("select u from User u where u.emailAddress = ?1")
User findByEmailAddress(String emailAddress);
}
@Modifying
//수정 쿼리도 직접 정의 가능
@Modifying(clearAutomatically = true)
@Query("update User u set u.firstname = ?1 where u.lastname = ?2")
int setFixedFirstnameeFor(String firstname, String lastname);
'Spring Study > DataBase' 카테고리의 다른 글
[DataBase] 스프링 트랜잭션 이해 (1) | 2023.10.06 |
---|---|
[DataBase] 데이터 접근 기술 - 테스트 (0) | 2023.09.25 |
[DataBase] 데이터 접근 기술 (0) | 2023.09.22 |
[DataBase] 예외 처리 (0) | 2023.09.21 |
[DataBase] 자바 예외 (Exception) (0) | 2023.09.20 |
댓글