2022/06 2

[Spring/JPA] JPA(Hibernate 구현체) DDL 전략

※ 본 글은 저자 김영한 개발자의 "자바 ORM 표준 JPA 프로그래밍"의 내용을 요약하였습니다. ※ 구현체의 ddl auto 속성을 사용하여 JPA의 데이터베이스 별로 DDL를 생성하는 데, 이는 데이터베이스 방언에 따라 변한다 Hibernate ddl auto 속성은 다음과 같다. Hibernate DDL auto 속성 create: 기존 테이블을 삭제하고 새로 생성한다. Drop → Create create-drop: create 속성에 추가로 애플리케이션을 종료할 때 Drop(DDL 제거)한다. update: 데이터베이스 테이블과 엔티티 매핑정보를 비교해서 변경사항만 수정한다. (ALTER) validate: 데이터베이스 테이블과 엔티티 매핑정보를 비교해서 차이가 있다면 경고를 남기고 애플리케이션..

Spring/JPA 2022.06.17

[Spring/JPA] EntityManager, EntityManagerFactory

※ 본 글은 저자 김영한 개발자의 "자바 ORM 표준 JPA 프로그래밍"의 내용을 요약하였습니다. ※ 엔티티 매니저는 영속성 컨텍스트라는 곳에서 엔티티들을 관리하는 클래스이며, 엔티티 매니저 팩토리는 위 엔티티 매니저들을 생성하는 엔티티 매니저 공장이라고 생각하면 된다. 데이터베이스를 하나만 사용하는 경우, 보통 EntityManagerFactory를 하나만 생성한다. 엔티티 매니저 팩토리는 생성할 때마다 같은 persistence-unit name으로 지정해서 생성하더라도 계속 새로운 엔티티를 생성하므로 싱글톤, 의존성 주입과 같은 방식으로 개발을 해야한다. EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); MET..

Spring/JPA 2022.06.03