JPA6 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. JPA 영속성 관리 인프런의 자바 ORA 표준 JPA 프로그래밍 - 기본편과 자바 ORM 표준 JPA 책을 공부하며 정리한 포스트입니다. 1. 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하므로 서로 드란 스레드 간에 공유해도 되지만, 엔티티 매니저는 여러 스레드가 동시에 접근하면 동시성에 문제가 발생하므로 스레드 간에 절대 공유 해서는 안된다. 2. 영속성 컨텍스트란? 영속성 컨텍스트(persistence context)는 '엔티티를 영구 저장하는 환경' 이란는 뜻이다. persist() 메소드는 엔티티 매니저를 사용해서 엔티티를 영속성 컨택스트에 저장한다. 영속성 컨텍스트는 논리적인 개념으로 영속성 컨텍스트 매니저를 생성할 때 하나 만들어진다. 그리고 엔티티 매니저를 통.. 2023. 2. 20. JPA 시작 인프런의 자바 ORA 표준 JPA 프로그래밍 - 기본편과 자바 ORM 표준 JPA 책을 공부하며 정리한 포스트입니다. 1. 설정 빌드 : gradle 자바 버전 : 17 DB: mariaDB 추가한 의존성: xml설정 JPA 표준 속성 - javax.persistence.jdbc.driver : JDBC드라이버 - javax.persistence.jdbc.user : 데이터베이스 접속 아이디 - javax.persistence.jdbc.password : 데이터베이스 접속 비밀번호 - javax.persistence.jdbc.url : 데이터베이스 접속 URL 하이버네이트 속성 - hibernate.dialect : 데이터베이스 방언 설정 * gradle로 빌드할 경우 xml에 entity 경로 추가해야.. 2023. 2. 20. 이전 1 다음