본문 바로가기

JAVA11

[JPA] 엔티티 매핑 - 기본 키 매핑 Entity와 DB의 기본 키 매핑 방식과 전략에 대해 알아보자. @Id 엔티티의 해당 필드가 기본 키임을 알려주는 어노테이션. @GeneratedValue 기본 키 생성 방법을 명시할 수 있는 어노테이션. GeneratedValue를 사용할 경우 JPA가 id가 null값인 것을 확인한 후 전략을 전략을 실행하기 때문에 객체 생성 시 개별적으로 ID를 부여하면 작동하지 않으니 주의하자. GenerationType @GeneratedValue의 전략을 명시하는 속성값. 아래와 같이 4가지 속성이 있다. AUTO IDENTITY SEQUENCE TABLE IDENTITIY 기본 키 생성을 DB에 위임한다. JPA는 일반적으로 영속성 콘텍스트 등록 후 COMMIT 시 SQL이 실행되지만, 영속성 부여 시에 .. 2024. 1. 6.
[JPA] JPA 필드와 컬럼 매핑 필드명과 컬럼 매핑 @Column name : 엔티티 필드와 매핑될 DB테이블 컬럼명을 명시해준다. insertable, updateable : 등록 변경 가능 여부. false일경우 업데이트시에도 DB에 반영되지 않는다. nullable : false : not null 제약조건 unique : 유니크 제약조건을 건다. 제약조건명 지정 불가능하기 때문에 잘 사용하지 않는 옵션. JPA가 알아서 Unique 제약 조건명을 부여하는데, 의미가 명확하지 않고 읽기도 불편해서 오류가 났을때 파악이 어렵다. class에 등록하는 @Table의 uniqueConstraints 속성으로 유니크 조건을 걸면 제약조건명 까지 설정 할 수 있기 때문에 @Table 어노테이션의 uniqueConstraints을 이용하자... 2024. 1. 5.
[JPA] JPA와 영속성 컨텍스트(Persistent Context) 영속성(Persistent)이란 ? 영속성이란 어플리케이션이 종료되어도 사라지지 않는 데이터의 특성이다. 영속성을갖이 않는 데이터는 메모리에 존재했다가 어플리케이션이 종료되는 순간 사라진다. 우리는 데이터를 지속적으로 보관하기 위해 데이터베이스에 영구 저장함으로서 영속성을 부여한다. 영속성 컨텍스트(Persistent Conext)란? 영속성 컨텍스트란 데이터를 영구 저장하는 환경(context)으로 해석 할 수 있다. 영속성 컨텍스트는 EntityManager가 생성될 때 함께 생성된다. 어플리케이션과 DB사이에 객체를 보관하는 가상의 공간이라고 생각하면 이해하기 편하다. 단, JPA의 영속성 컨텍스트는 엔티티매니저가 생성한 트랜잭션 내에서만 유효하다. 트랜잭션이 종료되면 영속성 선텍스트에 저장된 데이.. 2023. 12. 29.
[JPA] JPA, MAVEN 개발 환경 설정 JPA 프로젝트를 생성하고 MAVEN으로 JPA를 설정하는 방법을 알아보자 이 글에서는 Spring 없이 오로지 JPA와 Maven의 설정만을 다룬다. pom.xml jpa hibernate와 h2 버전에 맞는 h2 라이브러리 의존성을 추가한다. org.hibernate hibernate-entitymanager 5.6.15.Final com.h2database h2 2.1.214 persistence.xml JPA 설정 파일 META-INF 아래 persistence.xml 파일을 읽어서 동작한다. 필수 속성 데이터베이스 드라이버 연결 정보를 기입한다. 데이터베이스 방언 각 DBMS 벤더는 저마다 표준을 따르지 않는 고유한 SQL 문법이 있다. 예를들어 ORACLE의 넘버링 문법인 ROWNUMER와 M.. 2023. 12. 29.