본문 바로가기

전체 글24

Chap.7 고급 매핑 - 상속 관계 매핑: 객체의 상속 관계를 데이터베이스에 어떻게 매핑하는지 다룬다. - @MappedSuperclass: 등록일, 수정일 같이 여러 엔티티에서 공통으로 사용하는 매핑 정보만 상속받고 싶으면 이 기능을 사용하면 된다. - 복합 키와 식별 관계 매핑: 데이터베이스의 식별자가 하나 이상일 때 매핑하는 방법을 다룬다. 그리고 데이터베이스 설계에서 이야기하는 식별 관계와 비식별 관계에 대해서도 다룬다. - 조인 테이블: 테이블은 외래 키 하나로 연관관계를 맺을 수 있지만 연관관계를 관리하는 연결 테이블을 두는 방법도 있다. 여기서는 이 연결 테이블을 매핑하는 방법을 다룬다. - 엔티티 하나에 여러 테이블 매핑하기: 보통 엔티티 하나에 테이블 하나를 매핑하지만 엔티티 하나에 여러 테이블을 매핑하는 방.. 2021. 5. 25.
Chap.6 다양한 연관관계 매핑 엔티티의 연관관계를 매핑할 때는 다음 3가지를 고려해야 한다. - 다중성: @ManyToOne, @OneToMany, @OneToOne, @ManyToMany - 단방향, 양방향: 객체 관계에서 한 쪽만 참조하는 것을 단방향 관계라 하고, 양쪽이 서로 참조하는 것을 양방향 관계라 한다. - 연관관계의 주인: JPA는 두 객체 연관관계 중 하나를 정해서 데이터베이스 외래 키를 관리하는데 이것을 연관관계의 주인이라 한다. 외래 키를 가진 테이블과 매핑한 엔티티가 외래키를 관리하는 게 효율적이므로 보통 이곳을 연관관계의 주인으로 선택한다. 주인이 아닌 방향은 외래 키를 변경할 수 없고 읽기만 가능하다. 연관관계의 주인이 아니면 mappedBy 속성을 사용하고 연관관계의 주인 필드 이름을 값으로 입력해야 한다... 2021. 5. 23.
Chap.5 연관관계 매핑 기초 객체의 참조와 테이블의 외래 키를 매핑하는 것이 이 장의 목표다. 연관관계 매핑을 이해하기 위한 핵심 키워드 - 방향: 단방향/ 양방향, 방향은 객체관계에만 존재하고테이블 관계는 항상 양방향임 - 다중성: N:1,1:N, 1:1, N:M - 연관관계의 주인: 객체를 양방향 연관관꼐로 만들면 연관관계의 주인을 정해야 함 단방향 연관관계 - 객체 연관관계 : 회원 객체는 Member.team 필드(멤버변수)로 팀 객체와 연관관계를 맺는다. : 회원 객체와 팀 객체는 단방향 관계다. - 테이블 연관관계 : 회원 테이블은 TEAM_ID 외래 키로 팀 테이블과 연관관계를 맺는다. : 회원 테이블과 팀 테이블은 양방향 관계다. TEAM_ID 외래 키 하나로 MEMBER JOIN TEAM과 TEAM JOIN MEMB.. 2021. 5. 19.
Chap.4 엔티티 매핑 객체와 테이블 매핑: @Entity, @Table 기본 키 매핑: @Id 필드와 컬럼 매핑: @Column 연관관계 매핑: @ManyToOne, @JoinColumn @Entity - JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션 필수 - @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라 부름 - 기본 생성자는 필수 (파라미터가 없는 public 또는 protected 생성자) : JPA가 엔티티 객체를 생성할 때 기본 생성자를 사용하므로 필요 - final 클래스, enum, interface, inner 클래스에는 사용할 수 없음 - 저장할 필드에 final 사용하면 안됨 - 속성: name @Table - 엔티티와 매핑할 테이블 지정, 생략하면 매핑한 엔티티 이.. 2021. 5. 17.
Chap.3 영속성 관리 엔티티 매니저 팩토리 -공장 엔티티 매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간에 공유해도 된다. 엔티티 매니저 엔티티 매니저는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유하면 안 된다. 앤티티 매니저는 데이터베이스 연결이 꼭 필요한 시점까지 커넥션을 얻지 않는다. J2SE? 자바 스탠다드 에디션은 가장 보편적으로 쓰이는 자바 API집합체입니다. 예전에는 J2SE로 불렸으나 버전 6.0이후에 Java SE로 변경되었습니다. 이전에는 썬 마이크로시스템즈에서 관리했으나 현재는 JCP 주도하에 개발되고 있습니다. 일반 자바 프로그램 개발을 위한 용도로 사용되며 스윙이나 AWT와 같은 GUI 방식의 기본 기능이 포함됩니다. 참고: animal-.. 2021. 5. 10.
Chap.2 JPA 시작 필요한 모드 라이브러리를 직접 내려받아서 관리하기는 어려우므로 메이븐이라는 도구를 사용하겠다. 메이븐은 라이브러리 관리 기능과 빌드 기능을 제공 JPA 구현체로 하이버네이트를 사사용하기 위한 핵심 라이브러리는 다음과 같다. - hibernate-core: 하이버네이트 라이브러리 - hibernate-entitymanager: 하이버네이트가 JPA 구현체로 동작하도록 JPA 표준을 구현한 라이브러리 - hibernate-jpa-2.1-api: JPA 2.1 표준 API를 모아둔 라이브러리 객체 매핑 @Entity: 이 클래스를 테이블과 매핑한다고 JPA에 알려준다. 이렇게 @Entity가 사용된 클래스를 엔티티 클래스라 한다. @Table @Id: 엔티티 클래스의 필드를 테이블의 기본 키(Primary K.. 2021. 5. 10.