프로그래밍공부/JPA

    JPA의 엔티티 매핑

    1. 엔티티 매핑 JPA에서는 엔티티와 테이블을 매핑해서 사용하며, 이러한 매핑을 어노테이션을 통해 쉽게 처리 가능하다. 객체와 테이블의 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn 1) @Entity @Entity가 붙은 클래스는 JPA가 관리하며 엔티티라고 부른다. JPA를 사용해서 테이블과 매핑할 때 클래스는 @Entity 어노테이션이 필수이다. 주의사항 기본 생성자를 필수로 만들어야 한다. (파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스를 사용하면 안된다. 저장할 필드에 final를 사용해서는 안된다. ..

    JPA의 영속성 관리

    JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스의 매핑 (Object Relational Mapping) 설계와 관련된 부분 정적인 내용 영속성 컨텍스트 실제 JPA가 내부적으로 어떻게 동작하는가에 관련된 부분 1. 영속성 컨텍스트 1) 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매너지를 통해 영속성 컨텍스트에 접근한다. 영속성 컨텍스트는 논리적인 개념이다. J2SE 환경 : EntityManager와 PersistenceContext가 1:1로 관리된다. J2EE : 스프링과 같은 컨테이너 환경에서 EntityManager(N) : PersistenceContext(1)로 관리된다. 2) 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어이다. "엔티티를 영구 저장하는 환경"이라는 뜻이다...

    JPA 시작

    1. JPA 설정하기 - persistence.xml /META-INF/persistence.xml에 위치한다. persistence-unit name으로 이름을 지정한다. javax.persistence로 시작하여 JPA 표준 속성을 지정한다. hibernate로 시작하여 하이버네이트 전용 속성을 지정한다. hibernate.dialect의 value 값에는 사용하려는 DB에 맞춰서 작성한다. 2. JPA 의 여러 DB 사용 JPA는 특정 데이터베이스에 종속하지 않다. 각각의 데이터베이스가 제공하는 SQL 문법과 함수가 조금씩 다르지만 SQL 표준을 지키지 않아도 특정 데이터베이스만의 고유한 기능을 사용할 수 있다. 가변 문자 : MySQL은 VARCHAR, Oracle은 VARCHAR2 문자열을 자르..

    JPA란

    1. JPA란 ? 1) JPA(Java Persistence API) JPA는 Java 진여에서 ORM(Object-Relational Mapping) 기술을 표준으로 사용하는 인터페이스의 모음 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 인터페이스이기 때문에 JPA를 Hibernate, OpenJPA 등이 구현 ORM (Object Relational Mapping) 1. 객체와 관계형 데이터베이스를 매핑하는 것을 의미한다. 2. ORM 프레임워크 객체와 테이블을 매핑하여 패러다음의 불일치 문제를 해결해준다. 2) JPA의 등장 이유 1) JPA는 반복적인 CRUD SQL을 처리해준다. JPA는 매핑된 관계로 SQL를 생성하고 실행하는데 개발자는 어떤 SQL이 실행될지만..