전체 글 83

필드와 컬럼 매핑

매핑 annotation 정리hibernate.hbm2ddl.auto어노테이션설명@Column컬럼 매핑@Enumeratedenum 타입 매핑@Temporal날짜 타입 매핑 @LobBLOB, CLOB 매핑@Transient특정필드를컬럼에 매핑하지 않음 (매핑 무시)   @Column속성설명기본값name필드와 매핑할 테이블의 컬럼 이름  객체의 필드 이름insertable,updatable등록, 변경 가능 여부 TRUEnullable(DDL)null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약 조건이 붙는다.  unique(DDL)@Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다. columnDefiniti..

JPA 2024.08.25

엔티티 매핑

엔티티 매핑 종류객체와 테이블 매핑 : @Entity, @Table필드와 컬럼 매핑 : @Column기본 키 매핑 : @Id연관 관계 매핑 : @ManyToOne, @JoinColumn @Entity@Entity가 붙은 클래스는 JPA가 관리한다.기본 생성자 필수 (public or protected 생성자)final 클래스, enum, interface, inner 클래스 사용 불가저장할 필드에 final 사용 불가 속성 정리name : JPA에서 사용할 엔티티 이름을 지정한다.   기본값일 경우, 클래스 이름을 그래도 사용한다.  @Table@Table은 엔티티와 매핑할 테이블 지정속성 정리name : 매핑할 테이블 이름기본값으로 엔티티 이름을 사catalog : 데이터베이스 catalog 매핑sch..

JPA 2024.08.25

영속성 컨텍스트와 엔티티의 생명 주기

영속성 컨텍스트란?:  엔티티를 영구 저장하는 환경 영속성 컨텍스트의 이점1차 캐시영속성 컨텍스트에 존재한다면 조회 시 SQL을 날리지 않는다.동일성 보장JPA가 영속 엔티티의 동일성을 보장해준다. 가능한 이유는 1차 캐시에서 조회해오기 때문에, 동일한 지 확인 가능하다.동일한 영속성 컨텍스트 내에서 같은 엔티티 키를 가진 두 객체는 같은 자바 객체이다.트랜잭션을 지원하는 쓰기 지연커밋하기 전까지는 데이터베이스에 Insert SQL을 보내지 않는다.변경 감지 더보기지연 로딩 영속성 컨텍스트 flushflush : 영속성 컨텍스트의 변경 내용을 데이터 베이스에 반영em.flush() - 직접 호출트랜잭션 커밋 - 플러시 자동 호출JPQL 쿼리 실행 - 플러시 자동 호출 플러시 모드 옵션FlushModeTy..

JPA 2024.08.24