Home JPA
Post
Cancel

JPA

JPA

Java Persistence API의 약자이다. JPA는 framework이 아닌 다른 framework에 의해서 구현될 수 있는 인터페이스이다.

JPA와 Hibernate의 관계

Java Servlet 명세와 같이, Hibernate는 JPA에 호환되는 framework 중 하나이다. Spring은 기본으로 Hibernate를 JPA vendor로 설정한다.

Java ORM이란?

ORM layer는 객체들이 rdb에 있는 table,column과 소통할 수 있도록 변환하는 역할을 한다.

JavaWorld > Persistence [series] > diagram

Configuring JPA

@Entity

1
2
3
4
@Entity
public class Musician {
  // ..class body
}

이 class와 객체가 persist되어야 함을 JPA에게 알려줌.

@Id

1
2
3
4
@Entity
public class Musician {
   @Id
   private Long id;

해당 필드가 pk임을 명시

@OneToMany

1
2
3
4
5
6
7
public class Musician {

  @OneToMany
  @JoinColumn(name="musicianId")
  private List<Performance> performances = new ArrayList<Performance>();
  //...
}

@JoinColumn은 Performance table의 어느 칼럼으로 Musician entity와 맵핑할 것인지 명시. JPA는 이 정보를 사용하여 object graph를 생성함.

Fetching Strategies

JPA의 default configuration은 아래와 같다.

  1. One to many : Lazy
  2. Many to one : Eager
  3. Many to many : Lazy
  4. One to one : Eager
This post is licensed under CC BY 4.0 by the author.

Log4j vs SLF4J

JDBC

Comments powered by Disqus.

Trending Tags