자바 ORM 표준 JPA 프로그래밍

[JPA] 엔티티 매핑 (매핑 어노테이션, DDL, 기본키 전략)
자바 ORM 표준 JPA 프로그래밍 섹션4. 엔티티 매핑 매핑 어노테이션 1. 객체와 테이블을 매핑하는 어노테이션 : @Entity, @Table 2. 필드와 컬럼을 매핑하는 어노테이션 : @Column 3. 기본키를 매핑하는 어노테이션 : @Id 4. 연관관계를 매핑하는 어노테이션 : @ManyToOne, @JoinColumn 객체와 테이블 매핑 @Entity @Entity가 달린 클래스는 JPA가 관리한다. 따라서 JPA를 사용하여 테이블과 매핑할 클래스는 @Entity를 필수적으로 사용해야 한다. 이때 주의점은 파라미터가 없는 public 또는 protected 기본 생성자는 필수로 있어야 한다. final, enum, interface, inner 클래스는 @Entity를 붙여 사용할 수 없다. ..

[자바 ORM 표준 JPA 프로그래밍] 섹션3. 영속성 관리 - 내부 동작 방식
영속성 컨텍스트 영속성 컨텍스트의 의미 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 의미를 가진다. 이는 DB에 저장한다는 의미보다는 영속성 컨텍스트를 통해 엔티티를 영속화 한다는 의미를 가진다. 따라서 엔티티를 영속성 컨텍스트에 저장한다는 뜻이다. 이후 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있다. 엔티티매니저와 영속성 컨텍스트는 N:1의 관계를 가진다. 엔티티의 생명주기 1. 비영속 (new, transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); 2. 영속 (managed) : 영속성 컨텍스트에 관리되는 상태 엔티티 매니..

[자바 ORM 표준 JPA 프로그래밍] 섹션2. JPA 시작하기
Hello JPA - 프로젝트 생성 강의와 다르게 진행한 점 DB 사용을 H2가 아닌 MySQL 사용 pom.xml 설정 dependency에 사용할 라이브러리를 적는다. 4.0.0 org.example ex1-hello-jpa 1.0-SNAPSHOT Archetype - ex1-hello-jpa http://maven.apache.org org.hibernate hibernate-entitymanager 5.3.10.Final mysql mysql-connector-java 8.0.28 라이브러리 버전 선택하는 방법 아래 페이지에서 내가 선택한 스프링 부트 버전의 Reference Docs > Dependency Versions를 확인한다. https://spring.io/projects/spring-..

[자바 ORM 표준 JPA 프로그래밍] 섹션1. JPA 소개
개요 JPA가 하는 일 반복적이고 단순한 SQL을 자동화하여 처리해준다. 과거에는 SQL을 직접 작성해야 했지만, 이제는 JPA에게 시키면 된다. JPA를 사용해서 얻는 이점 개발 생산성, 개발 속도가 증가하고 유지 보수에 용이하다. JPA를 실무에서 사용하기 어려운 이유 객체와 테이블을 올바르게 맵핑하고 설계하기 어렵기 때문이다. SQL 중심적인 개발의 문제점 SQL에 의존적인 개발 우리가 만드는 객체는 관계형 DB에 보관한다. 이 객체를 관계형 DB에 보관하려면, (저장하고/수정하고/삭제하고/조회하고 하려면) 수많은 쿼리 작성이 필요하다. 이게 바로 SQL 중심적인 개발의 문제점이다. 계속해서 INSERT INTO, UPDATE, SELECT, DELETE 쿼리를 무한 반복해야 하기 때문에 지루하다...