[JPA 시리즈] 2 - 엔티티 매핑 (2 - 컬럼 매핑과 기본 키 매핑)
·
Development/Java(Spring, JPA, etc.)
전 포스트에 이어 컬럼 매핑과 기본 키 매핑에 대해 알아보자.컬럼 매핑오늘은 코드부터 보고 시작하자.import jakarta.persistence.*;import java.time.LocalDate;import java.time.LocalDateTime;import java.util.Date;@Entitypublic class Member { @Id private Long id; @Column(name = "name") // 컬럼 매핑 private String username; private Integer age; @Enumerated(EnumType.STRING) // enum 타입 매핑 private RoleType roleType; ..
[JPA 시리즈] 2 - 엔티티 매핑 (1 - 엔티티 매핑 / 스키마 자동 생성)
·
Development/Java(Spring, JPA, etc.)
위 포스트는 인프런 김영한님 강의(자바 ORM 표준 JPA 프로그래밍 - 기본편)의 내용을 포함하고 있음을 밝힙니다.엔티티 매핑앞서 영속성 컨텍스트로 객체(엔티티)를 저장하는 방법을 보았다.이때 순수 자바 객체 상태로는 저장을 할 수 없기 때문에 영속성 컨텍스트에 저장하기 전에 사전처리를 해주어야 한다. 이 사전처리를 엔티티 매핑이라고 부른다. 먼저 객체와 테이블 매핑부터 살펴보자.객체 - 테이블 매핑@Entity객체와 테이블을 매핑하기 위해서는 반드시 객체에 @Entity 어노테이션을 붙여주어야 한다.이때 @Entity를 붙인 클래스를 엔티티라 부르며, JPA에서 관리하게 된다.주의할 점은 클래스에 기본 생성자를 반드시 만들어주어야 하고(파라미터가 없는 public이나 protected 생성자), fi..
[JPA 시리즈] 1 - 영속성 컨텍스트 (2 - 준영속)
·
Development/Java(Spring, JPA, etc.)
앞 글에서 이어집니다.직전에 미처 설명하지 못한 준영속을 알아보자. 준영속?앞전에 설명했다시피 JPA에서 객체가 영속성 컨텍스트에 들어가 관리를 받고 있는 상태를 영속, 영속 상태에서 컨텍스트에서 분리되어 나오면 준영속 상태라고 했다.그런데 이 시점에서 '근데 왜 객체가 컨텍스트에서 떨어져 나와서 연관도 없어졌는데 비영속이 아니라 준영속임?'이라는 의문이 생길 것이다. 이미 분리되어 나와서 관리도 안되지, 거기에다 영속성 컨텍스트가 제공하는 기능도 사용을 하지 못하니 언뜻 겉으로 보기에는 비영속 상태와 다를 바가 없어 보이기도 하다.하지만 비영속 상태와 준영속 상태의 차이점은 준영속은 비영속 상태와 달리 객체에 식별자를 가지고 있다. 이때 준영속 상태의 객체가 merge(병합)라는 과정을 거치면 다시 영..
[JPA 시리즈] 1 - 영속성 컨텍스트(1)
·
Development/Java(Spring, JPA, etc.)
들어가기 앞서그간 JPA 강의를 들으면서 배운 내용들을 까먹기 전에 정리하고자 포스트를 남기게 되었다.'여태까지 타입스크립트 하던 사람이 웬 갑자기 자바냐?' 할 수도 있는데 이유는 간단하다.원래 예전(이라지만 그래봐야 대학생 때지만...)부터 주력으로 하던 언어가 자바였고, 기술 스택 한두 가지 정도 더 늘려놓으면 언젠간 쓰지 않겠나 하는 생각에서다.포스팅은 아마 JPA, Spring Data JPA, QueryDSL 순으로 올라갈 듯하다. 인프런 김영한님 강의 로드맵[링크]을 따라 올라간다고 생각하면 된다.위 포스트는 인프런 김영한님 강의(자바 ORM 표준 JPA 프로그래밍 - 기본편)의 내용을 포함하고 있음을 밝힙니다.JPA?영속성 컨텍스트를 설명하기 전에 JPA가 무얼 하는 물건인지 간단히 알고 ..