본문 바로가기

JPA2

DB 스키마 자동 생성 JPA에서는 애플리케이션 로딩 시점에 DB 테이블을 자동으로 생성하는 기능을 지원해준다. 편리하긴 하지만 운영 환경에서 그대로 사용하지는 않거나 다듬어 사용하고, 로컬이나 개발 단계에서 사용하기 편리한 기능이다. 해당 기능을 사용하면 DDL을 자동 생성하며 데이터베이스 방언을 활용해서 각 DBMS에 맞는 적절한 DDL을 생성해 준다. 스프링 프로젝트의 경우 application.yml에서 해당 값을 설정할 수 있으며 jpa.hibernate.ddl-auto에 create 값을 넣어주면 자동으로 JPA가 테이블을 생성해준다. jpa: hibernate: ddl-auto: create 실제 위처럼 설정을 하고 애플리케이션을 실행하면 아래와 같이 DDL 쿼리가 날아가는 것을 볼 수 있다. ddl-auto 옵션.. 2021. 6. 10.
영속성 컨텍스트 JPA를 통해 entity를 만들고 DB와 연동하기 전, JPA의 동작 원리가 어떻게 되는지에 대해 알고갈 필요가 있다. JPA에 대한 개념 중 가장 중요한 두 가지를 들자면, 1. 객체와 관계형 DB 매핑 2. 영속성 컨텍스트 라고 할 수 있다. 이번 정리에서는 객체와 관계형 DB를 매핑하는 방법을 배우기 전에 영속성 컨텍스트의 개념에 대해서 정리한다. 영속성 컨텍스트 해당 포스트에는 나와있지 않지만 이 전 까지의 강의에서 JPA를 사용하기 전, EntityManagerFactory를 Singleton으로 생성하고 그것으로 부터 EntityManager를 생성하여 DB의 connection pool과 연동하여 JPA를 사용한다고 배웠다. 해당 설명을 그림으로 나타내면 아래와 같다. 영속성 컨텍스트는 이.. 2021. 6. 7.