JPA

    엔티티 매핑

    엔티티 매핑 종류 객체와 테이블 매핑: @Entity, @Table 필드와 칼럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne, @JoinColumn @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 주의 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X 속성 name JPA에서 사용할 엔티티 이름을 지정한다. 기본값: 클래스 이름을 그대로 사용(예: Member) @Table @Table은 엔티티와 매핑할 테이블을 지정한다. @Column @C..

    영속성 관리

    영속성 컨텍스트 (Persistence Context) 영속성 컨텍스트란 "엔티티를 영구 저장하는 환경”이다. 영속성 컨텍스트는 논리적인 개념이기에 눈에 보이지 않는다. EntityManager를 통해서 영속성 컨텍스트에 접근한다. EntityManager.persist(entity); 영속성 컨텍스트 엔티티의 생명주기 1. 비영속 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 객체를 생성한 상태 Member member = new Member(); member.setId(1L); member.setName("KHM"); 2. 영속 영속성 컨텍스트에 관리되는 상태 em.persist() 또는 em.find() 객체가 영속된다고 데이터베이스에 바로 쿼리를 날리지 않는다. 트랜잭션이 commit() 되는 ..

    JPA란?

    JPA Java Persistence API 자바 진영의 ORM 기술 표준 JPA에서 데이터를 변경하는 모든 작업은 트랜잭션 안에서 작업해야 한다. (읽기는 변경 작업이 아니므로 트랜잭션 밖에서 가능) ORM Object-relational mapping(객체 관계 매핑) 객체는 객체대로 설계, 관계형 데이터베이스는 관계형 데이터베이스대로 설계 객체와 관계형 데이터베이스를 중간에서 매핑한다. 대중적인 언어에는 대부분 ORM 기술이 존재하는데 그중 하나가 JPA이다. JPA를 사용해야 하는 이유 1. 생산성 자바 컬렉션에 객체를 저장하듯이 JPA에게 저장할 객체만 전달하면 JPA가 대신 처리해준다. 반복적인 코드와 CRUD용 SQL을 개발자가 직접 작성하지 않아도 된다. CREATE TABLE과 같은 DD..