DB/JPA 13

[JPA] Entity 매핑 정리

개요 이번 게시글에서는 JPA 엔티티 매핑 관련 어노테이션에 대해 정리해보겠습니다. 연관 관계와 관련된 어노테이션은 다음 게시글에서 정리할 예정이고 해당 포스팅에서는 아래의 매핑에 대해서 정리해보겠습니다. 객체와 테이블 매핑 필드와 칼럼 매핑 기본 키 매핑 1. 객체와 테이블 매핑 객체와 테이블 매핑할 때는 두 가지 어노테이션이 사용됩니다. @Entity @Table 1.1 @Entity JPA를 사용해 테이블과 매핑하기 위해서는 클래스에 필수로 @Entity 어노테이션을 붙여줘야 함 파라미터가 없는 기본 생성자를 필수로 정의해야 함 final 클래스, enum, interface, inner 클래스 사용 불가 enum 필드를 사용하기 위해서는 @Enumerated 어노테이션을 사용해야 함 (추후 설명 ..

DB/JPA 2021.08.23

[JPA] PersistenceContext 간단 정리

개요 이번 게시글에서는 JPA 내부 구조 및 동작 방식을 파악하는데 중요한 개념인 PersistenceContext(영속성 컨텍스트)에 대해 알아보겠습니다. 1. EntityManagerFactory & EntityManager JPA 내부 구조를 살펴보면 EntityMangerFactory 객체와 EntityManager 객체가 있습니다. EntityManagerFactor객체는 고객의 요청이 올 때마다 즉, 각 쓰레드마다 EntityManager 객체를 생성하고 해당 객체는 내부적으로 DB Connection Pool을 활용하여 DB에 연결을 합니다. 위 내용을 코드로 구성해보면 아래와 같습니다. 2. PersistenceContext (영속성 컨텍스트) JPA를 이해하는데 가장 중요한 용어 물리적인..

DB/JPA 2021.08.20

JPA를 학습해야하는 이유

개요 구글 트렌드를 보면 아래 사진처럼 전 세계적으로 MyBatis보다 JPA가 핫하다는 것을 알 수 있습니다. 하지만, 유독 우리나라와 중국에서만 아직까지 JPA보다 MyBatis가 많이 쓰이는 것으로 보입니다. 아무래도 각 기업마다 레거시 프로젝트들이 많고 타 국가보다 보수적인 성향을 지녀 JPA로 전향을 하지 않아 그런 듯합니다. (저 또한 JPA보다는 MyBatis가 더 익숙하며 현재 프로젝트에서는 섞어서 쓰고 있습니다.) 그럼에도 불구하고 JPA를 배워야 하는 이유는 우리가 이름만 들어도 아는 네카라쿠배당토와 같은 서비스 기업들이 JPA를 적용하고 있기 때문입니다. 또한, 결국에는 우리나라도 세계적인 트렌드에 맞춰 MyBatis보다 JPA를 더 중용하는 날이 머지않아 올 것으로 예측되기 때문에 ..

DB/JPA 2021.08.16