개발/JPA

개발/JPA

연관관계 매핑 기초

2023. 02.07 13:00 복습 시작 연관관계 엔티티들은 대부분 다른 엔티티와 연관관계가 있다. 객체는 참조(주소)를 사용해서 관계를 맺고 테이블은 외래 키를 사용해서 관계를 맺는다. 이 둘은 완전히 다른 특징을 가지며, 객체 관계 매핑(ORM)에서 가장 어려운 부분이 바로 객체 연관관계와 테이블의 연관 관계를 매핑하는 일이다. 이제 객체의 참조와 테이블의 외래 키를 매핑하는 방법을 알아보겠다. 알아둬야 할 용어들이 있다. 방향 : 단방향과, 양방향이 있다. 한쪽만 참조하는 것을 단방향, 양 쪽 모두 서로 참조하는 것을 양방향이라고 한다. 방향은 객체 관계에만 존재하고, 테이블은 항상 양방향이다. 다중성: 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 연관관계의 주인 :..

개발/JPA

기본 키 매핑

2023. 02.07 12:00 복습 시작 기본 키 매핑 기본키를 애플리케이션에서 직접 할당하는 대신에 데이터베이스가 생성해주는 값을 사용하려면 어떻게 매핑해야 할까? 오라클의 시퀀스 오브젝트라던가 아니면 MySQL의 AUTO_INCREMENT 같은 기능을 사용해서 생성된 값을 기본 키로 사용하려면 어떻게 해야 할까? 데이터베이스마다 기본 키를 생성하는 방식이 서로 다르므로 이 문제를 해결하기는 쉽지 않다. JPA는 이런 문제를 어떻게 해결하는지 알아보자. 직접 할당 : @Id만 사용 자동 생성 (@GeneratedValue) IDENTITY : 기본 키 생성을 데이터베이스에 위임. (MySQL) SEQUENCE : 데이터베이스 시퀀스 오브젝트 사용. (ORACLE) @SequenceGenerator 필..

개발/JPA

객체와 테이블 매핑, DB 스키마 자동 생성, 필드와 컬럼 매핑

2023. 02.07 11:15 복습 시작 객체와 테이블 매핑 JPA를 사용하는 데 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것. 이에 대해 학습해보자. @Entity @Entity가 붙은 클래스는 JPA가 관리하며 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수이다. @Entity 적용 시 주의해야 할 점이 몇 가지 있다. 기본 생성자는 필수다. 즉, 파라미터가 없는 public or protected 생성자가 필수다. final 클래스, enum, interface, inner 클래스에서는 사용 불가하다. 저장할 필드에 final을 사용할 수 없다. @Entity에는 name이라는 속성도 있다. 이는 엔티티 이름을 지정하는데 name을 설정하지 않는다면 클래..

개발/JPA

영속성 관리

2023. 02.07 09:30 복습 시작 JPA 기능 JPA가 제공하는 기능은 크게 두 가지가 있다. 엔티티와 테이블을 매핑하는 설계 부분 매핑한 엔티티를 실제 사용하는 부분 매핑한 엔티티를 엔티티 매니저를 통해 어떻게 사용하는지 알아보자. 먼저 엔티티 매니저란 무엇인가? 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리한다. 개발자의 입장에서 엔티티 매니저는 엔티티를 저장하는 가상의 데이터베이스로 생각하면 된다. 일반적으로 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 엔티티 매니저 팩토리를 하나만 생성한다. 엔티티 매니저 팩토리를 생성하면 필요할 때마다 엔티티 매니저를 생성하면 된다. 엔티티 매니저 팩토리는 엔티티 매니저를 만드는 공장인데..

Debin
'개발/JPA' 카테고리의 글 목록 (4 Page)