본문 바로가기

Java | spring/JPA6

JPA 조회 동작 방식 비교 : findById(), getOne(), getReferenceById() JPA 주요 조회 메서드는 아래와 같다. findById() getReferenceById() getOne() → 현재는 Deprecated된 메서드 아무 생각없이 쓰던 findById()와 다른 메서드는 어떤 차이를 가지는지 동작 방식과 구현 코드를 보며 비교해 보자. JpaRepository @Repository public interface BookRepository extends JpaRepository { } JPA를 사용하면 엔티티 단위로 위와 같이 JpaRepository를 상속 받은 Repository interface를 생성 위와 같이 JpaRepository 상속 받는 경우 기존에 구현된 기능을 그대로 사용할 수 있음 사용 가능 주요 메서드 S save(S entity) Iterable.. 2024. 3. 27.
JPA 영속성 컨텍스트 장점(+ 테스트 코드) JPA의 가장 중요한 개념 중 하나가 영속성 컨텍스트라는 것이다. 만약 영속성 컨텍스트를 잘 모르겠다면! 아래 글을 먼저 보고 오길 추천한다. JPA 영속성 컨텍스트 및 내부 동작 방식 JPA 영속성 컨텍스트 및 내부 동작 방식 JPA를 처음 학습하는 경우에 영속성 컨텍스트가 무슨 의미인지 이해하기가 쉽지 않다. 사실 사용하다 보면 자연스럽게 이해가 되긴 하는데, 처음에 해당 개념을 제대로 이해하지 않으면 내 생각 developsd.tistory.com 영속성 컨텍스트는 간단하게 말해서 "엔티티를 영구 저장하는 환경"이라는 뜻이다. 지금은 잘 이해가 가지 않더라도 아래 내용을 보다보면 조금은 이해가 될 것이라 확신한다! 이번 글에서는 영속성 컨텍스의 이점에 대해서 상세하게 설명해 보고자 한다. JPA에서.. 2023. 10. 9.
JPA 영속성 컨텍스트 및 내부 동작 방식 JPA를 처음 학습하는 경우에 영속성 컨텍스트가 무슨 의미인지 이해하기가 쉽지 않다. 사실 사용하다 보면 자연스럽게 이해가 되긴 하는데, 처음에 해당 개념을 제대로 이해하지 않으면 내 생각과 다르게 동작하는 것을 보면서 아주 당황할 수 밖에 없다. 그래서 제대로 이해하고 넘어가는 것이 좋다. 영속성 컨텍스트(Persistence context)란? JPA 이해 시 가장 중요한 용어 entity 영구 저장하는 환경 영속성 컨텍스는 논리적인 개념 entityManager를 통해 영속성 컨텍스트에 접근 entity를 저장하거나 조회하면 entityManager는 영속성 컨텍스트에 엔티티를 보관하고 관리함 위에 내용만으로 바로 이해가 되지 않는 것이 정상이다! 보통 애플리케이션에서 데이터베이스에 데이터를 저장하.. 2023. 10. 8.
JPA 사용 하는 이유는? (+ ORM 과 SQL mapper 비교) 일반적인 프로그램은 프로그램이 종료 되더라도 실행 중에 작성하거나 생성한 데이터가 이후에 재실행 후 접근 시 동일한 데이터를 바라봐야 한다. 예를 들어 하루 종일 게임을 해서 레벨을 올렸는데, 다음 날 재 접속 했더니 레벨이 다시 초기화 된다면! 생각만 해도 끔찍하다... 데이터를 생성한 프로그램의 실행이 종료되더라도 데이터가 사라지지 않고 저장되는 데이터의 속성. 이 개념을 영속성(Persistence)이라고 한다. Persistence layer 구현하는 방식에 따라 구분이 된다. JDBC 이용하여 영속성 계층 구현 Persistence Framework(영속성 프레임워크)를 이용하여 구현 SLQ mapper ORM 데이터를 저장하고 관리하는 기술의 흐름은 아래와 같이 변화되어 왔다. 기존 기술의 불.. 2022. 10. 17.
JPA Entity & 영속성 컨텍스트 & 라이프 사이클 알아보자! JPA는 사용하기 전에 알아야 할 개념들이 있다. 그 중에서도 기본적인 개념인 Entity / 영속성 컨텍스트 / 라이프 사이클에 대해 알아보자. JPA Entity 테이블과 대응하는 하나의 클래스 Entity 4가지 상태 : 비영속, 영속, 준영속, 삭제 Entity 예시 코드 @Entity : 엔티티 클래스에 설정, 필수값 @Table : 엔티티와 매핑할 테이블명 지정 @Id : 식별자 속성에 설정, 필수값 @Coulumn : 매핑할 테이블의 컬럼, 제약조건, 필드면 다른 경우 name 지정 가능 @Entity @Table(name = "user") public class UserEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Co.. 2022. 10. 14.
JPA란 무엇인가? Mybatis와 차이점 (+기초 무료 인강 추천) JAVA/Spring을 공부하거나 사용한 개발자라면 JPA를 사용해 보거나, 많이 들어봤을 것이다. 요새 많은 곳에서 사용하는 기술 중 하나이다. 레거시 서비스가 아닌 서비스를 제공하는 곳이라면 개발을 할 때 JPA를 많이 사용하는 추세이다. JPA란 무엇인지, 기존에 쓰던 Mybatis와 비교하면 알아보자. JPA(Java Persistence API) 자바 진영의 ORM 기술 표준 자바 객체와 DB 데이터 간의 매핑을 처리하기 위한 ORM(Object-Relational Mapping) 표준 자바 ORM 기술에 대한 API 표준 명세(인터페이스를 모아 둔 것!) 위의 이야기만 보면 어렵게 느껴질 수 밖에 없지만, 자바로 DB에서 데이터를 조회, 수정, 삭제, 추가를 할 때 사용하는 기술이라고 생각하면.. 2022. 10. 14.
반응형