JPA & Hibernate8 JPA 값 타입 인프런의 자바 ORA 표준 JPA 프로그래밍 - 기본편과 자바 ORM 표준 JPA 책을 공부하며 정리한 포스트입니다 JPA의 데이터 타입은 크게 엔티티 타입과 값 타입으로 나눌 수 있다. 엔티티 타입은 @Entity로 정의하는 객체, 값 타입은 int, Integer, String 같은 자바 기본타입이나 객체를 말한다. 엔티티 타입은 식별자를 통해 지속해서추적할 수 있지만, 값 타입은 식별자가 없고 숫자나 문자같은 속성만 있으므로 추적할 수 없다. 기본값 타입 - 자바 기본 타입 (예: int, double...) - 래퍼 클래스 (예: Integer) - String 임베디드 타입 embedded type (복합 값 타입) 컬렉션 값 타입 Collection value type 기본값 타입 위 엔티티에.. 2023. 3. 10. JPA 프록시와 연관관계 관리 인프런의 자바 ORA 표준 JPA 프로그래밍 - 기본편과 자바 ORM 표준 JPA 책을 공부하며 정리한 포스트입니다. 프록시와 즉시로딩, 지연로딩: 객체는 객체 그래프로 탐색하지만 객체가 DB에 저장되어 있으므로 연관된 객체를 마음껏 탐색하기 어려워 JPA구현체 들은 이 문제를 해결하기 위해 프록시라는 기술을 사용한다. 프록시를 사용하면 연관된 객체를 처음부터 DB에서 조회하는 것이 아니라, 실제 사용 시점에 DB에서 조회할 수 있다. 영속성 전이와 고아 객체: JPA는 연관된 객체를 함께 저장하거나 함께 삭제할 수 잇는 영속성 전이와 고아 객체 제거라는 편리한 기능 제공 프록시 엔티티를 조회할할 때 사용하지 않는 엔티티까지 데이터베이스에서 함께 조회해 두는 것은 효율적이지 않다. JPA는 이런 문제를 .. 2023. 3. 6. JPA 고급 매핑 인프런의 자바 ORA 표준 JPA 프로그래밍 - 기본편과 자바 ORM 표준 JPA 책을 공부하며 정리한 포스트입니다. 이 포스팅에 적을 고급 매핑 상속 관계 매핑: 객체의 상속 관계를 데이터베이스에 어떻게 매핑하는지 @MappedSuperclass: 등록일, 수정일 같이 여러 엔티티의 공통으로 사용하는 매핑 정보만 상속 받고 싶을때 이 기능 사용 복합 키와 식별 관계 매핑: 데이터베이스의 식별자가 하나 이상일 때 매핑하는 방법, 그리고 데이터베이스 설계에서 이야기하는 식별 관계와 비식별 관계에 대해서 조인 테이블: 테이블은 외래 키 하나로 연관관게를 맺을 수 있지만 연관관계를 관리하는 연결 테이블을 두는 방법 엔티티 하나에 여러 테이블 매핑: 엔티티 하나에 여러 테이블을 매핑하는 방법 상송관계 매핑 관계.. 2023. 3. 3. JPA 다양한 연관관계 매핑 인프런의 자바 ORA 표준 JPA 프로그래밍 - 기본편과 자바 ORM 표준 JPA 책을 공부하며 정리한 포스트입니다. 엔티티의 연관관계를 매핑할 때는 두 엔티티가 일대일 관계인지 일대다 관계인지 다중성을 고려해야 한다. 그리고 한쪽만 참조하는 단방향 관계인지 서로 참조하는 양방향 관계인지 고려해야 한다. 마지막으로 양방향 관계면 연관관계의 주인을 정해야 한다. 다중성 다대일 (@ManyToOne) 일대다 (@OneToMany) 일대일 (@OneToOne) 다대다 (@ManyToMany) 연관관계의 주인 JPA는 두 객체 연관관계 중 하나를 정해서 데이터베이스 외래 키를 관리하는데 이것을 연관관계의 주인이라 한다. 외래키를 가진 테이블과 매핑한 엔티티가 외래키를 관리하는게 효율적이므로 보통 이곳을 연관관계.. 2023. 2. 27. JPA 연관관계 매핑 기초 인프런의 자바 ORA 표준 JPA 프로그래밍 - 기본편과 자바 ORM 표준 JPA 책을 공부하며 정리한 포스트입니다. 단반향 연관관계 다대일(N:1) 객체 연관관계 회원 객체는 Member.team 필드로 팀 객체와 연관관계를 맺는다. 회원 객체와 팀 객체는 단방향 관계다. 회원은 Member.team 필드를 통해서 팀을 알 수 있지만 반대로 팀은 회원을 알 수 없다. 테이블 연관관계 회원 테이블은 TEAM_ID 외래 키로 팀 테이블과 연관관계를 맺는다. 회원 테이블과 팀 테이블은 양방향 관계다. TEAM_ID 외래 키를 통해서 회원과 팀을 조인할 수 있고 반대로 팀과 회원도 조인할 수 있다. 객체 연관관계와 테이블 연관관계의 차이점 참조를 통한 연관관계는 언제나 단방향이다. 객체간에 연관관계를 양방향으.. 2023. 2. 23. JPA 엔티티 매핑 인프런의 자바 ORA 표준 JPA 프로그래밍 - 기본편과 자바 ORM 표준 JPA 책을 공부하며 정리한 포스트입니다. JPA를 사용하는 데 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것이다. JPA는 다양한 매핑 어노테이션을 지원하는데 크게 4가지로 분류할 수 있다. 객체와 테이블 매핑: @Entity, @Table 기본 키 매핑: @Id 필드와 컬럼 매핑: @Column 연관관계 매핑: @ManyToOne, @JoinColumn 이번 글에서는 객체와 테이블 매핑, 기본 키 매핑, 필드와 컬럼 매핑을 알아보겠다. @Entity 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 한다. @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라 부른다. 속성 기능 기본값 na.. 2023. 2. 22. 이전 1 2 다음