본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.백엔드 웹 애플리케이션의 헤게모니는 객체지향이 쥐고있다. 객체지향은 추상화, 캡슐화, 상속, 다형성 등을 통해 복잡한 시스템을 변경에 유연하고 확장이 용이하도록 관리한다.그러나 관계형 데이터베이스의 헤게모
본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.영속성 컨텍스트는 눈에 보이지 않는 논리적인 개념이다. 영어로 PersistenceContext 라고 하며 이름처럼 엔티티를 영구 저장하는 환경이라고 볼 수 있다.애플리케이션에서는 EntityManager
엔티티는 DB의 테이블과 매핑되는 클래스다.엔티티에 클래스에 붙이는 @Entity 애노테이션을 알아보자.@Entity 애노테이션을 클래스에 필수적으로 붙여야 JPA가 해당 클래스를 엔티티로 인식하고 관리할 수 있게된다. 엔티티 클래스를 작성할 때 주의사항이 몇 가지 있
엔티티와 테이블은 모두 서로 연관관계를 맺는다. 객체는 참조로 관계를 맺고 테이블은 외래키로 관계를 맺는다. 연관관계를 이해하기 위해 몇가지 용어를 짚고 넘어가자.방향(Direction): 단방향, 양방향다중성(Multiplicity): 다대일(N:1), 일대다(1:N
본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.연관관계 매핑시 고려할 사항은 크게 3가지다.방향(Direction): 단방향, 양방향다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)연관관계의 주인(
객체지향에는 아래와 같이 클래스끼리 상속관계가 존재한다.그러나 관계형 데이터베이스는 상속관계를 지원하지 않는다. 그 대신 데이터베이스의 슈퍼타입, 서브타입 관계라는 모델링 기법을 통해 객체의 상속관계를 매핑할 수 있다.위의 그림은 Item을 슈퍼타입으로 Album, M
본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.아래 그림을 살펴보자. Member 엔티티는 Team 엔티티와 1:N 연관관계를 가진다.Member를 조회할 때 Team도 함께 조회해야될까? 상황에 따라 다르다. 만약 Team 엔티티를 사용하지 않는다면
본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.영속성 전이는 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶을 때 사용한다. 영속성 전이는 연관관계를 매핑하고 연관관계의 주인을 설정하는 것과 아무 관련이 없다. 단지 엔
본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.JPA에서 데이터의 타입은 두 가지로 나뉜다.엔티티 타입@Entity로 정의한 객체식별자로 추적 가능값 타입int, Integer, String 처럼 값을 표현하는 기본 타입이나 객체식별자가 없기 때문에
본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.이전 글들에서 JPA를 통해 데이터베이스의 테이블을 객체지향적으로 설계한 엔티티로 매핑하는 방법을 알아보았다. 매핑을 다 마쳤다면 자바 애플리케이션에서 데이터베이스에 접근하는 방법을 알아볼 필요가 있다.
본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.모든 객체는 서로 참조를 통해 마치 그래프처럼 연결되있다. 자바에서 .(점)을 찍어서 연결된 객체로 이동할 수 있다.엔티티도 객체기 때문에 마찬가지다. 엔티티들은 연관관계를 통해 객체 그래프를 이룬다. J
본 글은 인프런 김영한님의 JPA 로드맵을 기반으로 정리했습니다.이 도메인 모델을 통해 JPA를 통해 API를 어떻게 설계하고 연관된 엔티티를 어떻게 조회하는 것이 바람직한지 살펴볼 것이다.Category, Album, Movie 엔티티는 예제에 등장하지 않기 때문에