본문 바로가기

JPA8

엔티티 매핑 @Entity 엔티티 : DB 테이블에 대응하는 하나의 클래스 해당 어노테이션이 붙은 클래스는 JPA가 관리하는 엔티티 주의 사항 기본 생성자 필수(public, protected) final 클래스, enum, interface, inner 클래스에 사용 불가 저장할 필드에 final 사용 불가 @Table 엔티티와 매핑할 테이블 지정 @Table(name = "테이블 명") : 기본은 클래스 명과 동일 @Column 클래스 내의 필드와 테이블 컬럼 매핑 @Column(name = "테이블에서 매핑될 컬럼 명") 속성 name : 필드와 매핑할 테이블의 컬럼 이름 insertable, updatable : 등록, 변경 가능 여부 (default : true) nullable : null 값 허용 여부.. 2023. 8. 25.
영속성 관리 영속성 컨텍스트 엔티티를 영구 저장하는 환경 EntityManger.persist(entity); 논리적인 개념으로 눈에 보이지 않음 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 내부에 1차 캐시, 쓰기 지연 SQL 존재 엔티티 생명주기 비영속 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속 영속성 컨텍스트에 관리되는 상태로 영속성 컨텍스트 안에 객체가 들어간다고 생각 em.persist 이후 바로 데이터베이스 쿼리가 나가는 것이 아닌, commit 순간에 영속성 컨텍스트 안의 객체가 데이터베이스로 날아감 준영속 영속성 컨텍스트에서 분리된 상태(detached) 영속성 컨텍스트가 제공하는 기능을 사용 못함(commit 등) em.detach(entity) : 해당 entity를 준영속 상태로 만듬.. 2023. 8. 22.