본문 바로가기

JPA

JPA 영속 컨텍스트와 엔티티 상태 * 해당 게시글은 JPA의 공부를 위한 게시글로 JPA를 공부하며 이해했던 내용들을 정리하는 글입니다. 영속 컨텍스트(영속 컨테이너) JPA가 제공하는 영속 컨텍스트는 persistence.xml 파일을 로딩하여 Entity Manager 객체를 생성할 때 자동으로 생성됩니다. 클라이언트는 직접적으로 영속 컨텍스트를 접근 할 수 없으며 Entity Manager가 제공하는 메소드(ex persiste)를 통해서만 접근할 수 있습니다. 영속 컨텍스트가 관리하는 엔티티의 상태는 4가지로 존재 할 수 있습니다. 상태 의미 생성(NEW) 엔티티가 생성한 상태이며 영속 컨텍스트에 등록되지 않은 상태 관리(MANAGED) 생성된 엔티티가 Entity Manager의 persist 메소드를 통해 영속 컨텍스트에 등록.. 더보기
JPA 식별자 자동생성 방식 * 해당 게시글은 JPA의 공부를 위한 게시글로 JPA를 공부하며 이해했던 내용들을 정리하는 글입니다. @Id와 @GeneratedValue 애노테이션을 식별자 변수에 추가하여 자동으로 증가된 값을 할당할 수 있습니다. @GeneratedValue 속성은 2가지가 있습니다. 속성 설명 strategy 식별자 값 자동 생성 전략을 선택한다.(GenerationType 지정) generator 생성된 키 생성기를 참조한다. strategy 속성은 식별자 값 자동 생성 전략과 관련된 속성으로 TABLE, SEQUENCE, IDENTITY, AUTO 네 가지를 지정할 수 있습니다. 전략에 대한 설명은 다음과 같습니다. PK 전략 해설 GenerationType.IDENTITY auto_increment나 IDE.. 더보기
JPA 엔티티 클래스 관련 애노테이션 알아보기 * 해당 게시글은 JPA의 공부를 위한 게시글로 JPA를 공부하며 이해했던 내용들을 정리하는 글입니다. 엔티티 클래스에 설정할 수 있는 다양한 애노테이션이 존재합니다. 이 글에서는 애노테이션과, 각 애노테이션의 속성을 알아보겠습니다. @Entity JPA는 @Entity 애노테이션이 설정된 클래스로부터 생성된 객체를 엔티티로 인식합니다. name 속성으로 엔티티 이름을 정의할 수 있습니다. @Id 테이블의 기본키와 매핑되는 엔티티 클래스의 식별자 변수를 표시할 때 해당 애노테이션을 사용합니다. strategy 속성으로 데이터베이스의 key 생성 전략을 지정합니다. key 생성 전략에 대한 부분은 해당 게시글에 자세히 설명하고 있으니 참고바랍니다. @Table @Table 애노테이션의 name 속성을 지정.. 더보기
JPA란? * 해당 게시글은 JPA의 공부를 위한 게시글로 JPA를 공부하며 이해했던 내용들을 정리하는 글입니다. Java Persistence API의 약자로 ORM 기술에 대한 자바 표준 API입니다. ORM에 대해서 많은 프레임워크가 존재하며 대표적인 프레임워크로는 하이버네이트, 이클립스링크 등이 있습니다. JPA를 구현하기 위해서는 관련 라이브러리를 추가해야하며 ORM 프레임워크로는 하이버네이트를 추가하겠습니다. [pom.xml에 하이버네이트 관련 라이브러리 추가] org.hibernate hibernate-entitymanager 5.4.10.Final JPA에서 테이블과 매핑되는 자바 클래스를 엔티티 클래스라합니다. 기존의 VO 클래스가 동일한 개념입니다. 엔티티 클래스 작성방법 @Entity @Data.. 더보기