728x90

JPA 3

김영한 (ORM 표준 JPA 프로그래밍 4) 엔티티 매핑

@Entity @Entity 가 붙은 클래스는 JPA가 관리, 엔티티라 한다. 기본 생성자 필수(파리미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X 예를 들어서 엔티티를 JPA 구현체가 생성할 때 리플렉션을 사용해서 객체를 먼저 생성하고 나중에 값을 필드에 직접 넣어주기도 하는데 final 이면 그게 불가능해진다. 속성: name JPA 에서 사용할 엔티티 이름을 지정한다. 같은 클래스의 이름이 없으면 그대로 사용하자. 이러한 관계를 이루고있다. 데이터베이스 스키마 자동 생성 DDL(Data Definition Language)을 애플리케이션 실행 시점에 자동 생성 ,Create Tab..

WEB/JPA 2021.03.06

김영한 (ORM 표준 JPA 프로그래밍 3) 영속성 관리 - 내부 동작방식

요청이 올떄마다 EntityManager 를 생성해서 dbconnection 을 사용한다. 영속성 컨텍스트 = 엔티티를 영구 저장하는 환경, 논리적인 개념 EntityManager 를 통해 영속성 컨텍스트에 접근이 가능하다. 엔티티의 생명주기 비영속(new/transient) = 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) = 영속성 컨텍스트에 관리되는 상태 준영속(detached) = 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed) = 삭제된 상태 장점 1차 캐시 굳이 database까지 안가고 1차캐시에 존재하면 바로 조회하여 네트워크 리소스를 아낄수 있다는 장점이 있다. 만약 없다면 1차캐시에 저장한 후에 반환을 하게 된다. 하지만 애플리케이션 전체에서 공유..

WEB/JPA 2021.02.25

김영한 (ORM 표준 JPA 프로그래밍 2) JPA 시작하기

JPA를 쓰러면 기본적인 설정 하는 persistence.xml 파일을 resource/META-INF 폴더 안에 만들어서 넣어주어야한다. 현재는 연습용으로 h2 를 쓴다. javax. 다른 jpa 구현체를 써도 그대로 유지되지만 hibernate. 시작하는것은 구현체마다 다르게 다른것을 적어주어야 한다. hibernate.show_sql = db 에 나가는 쿼리를 눈으로 확인하겠다 라는 옵션이다. 데이터베이스 방언 JPA는 특정 데이터베이스에 종속적이지 않다. 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름 JPA 구동 방식 객체와 테이블을 생성하고 매핑하기 H2 에 member table을 생성해주고 그에 해당하는 JPA가 관리하는 객체를 생성해준다. package hellojpa; ..

WEB/JPA 2021.02.25
728x90