엔티티들은 대부분 다른 엔티티와 연관관계가 있다.객체의 참조와 테이블의 외래 키를 매핑하는 것이 목표이다. 방향 : 단방향, 양방향다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이 있다.연관관계의 주인(owner) : 객체를 양방향 연관관계로 만들면 연관관계의 주인을 만들어야 한다. 단방향 연관관계요구사항회원과 팀이 있다.회원은 하나의 팀에만 소속 될 수 있다.회원과 팀은 다대일(N:1)관계이다. 객체 연관관계회원 객체는 Member.team 필드로 팀 객체와 연관관계를 맺는다.회원 객체와 팀 객체는 단방향 관계회원은 Member.team 필드를 통해 팀을 알 수 있다.팀은 회원의 존재를 모른다.member.getTeam()은 가능team은 접근 필드가 없다. 테이..
JPA
JPA를 사용하는 데 중요한 것은 엔티티와 테이블을 정확히 매핑하는 것이다.따라서 매핑 어노테이션을 숙지하고 사용해야 한다.JPA는 다양한 매핑 어노테이션을 지원하는데 크게 4가지로 분류할 수 있다. 객체와 테이블 매핑@Entity, @Table기본 키 매핑@Id필드와 컬럼 매핑@Column연관관계 매핑@ManyToOne, @JoinColumn@EntityJPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션은 필수이다.이 어노테이션이 붙은 클래스는 JPA가 관리한다. 속성 정리속성기능기본값name - JPA에서 사용할 엔티티 이름을 지정 - 보통 기본값인 클래스 이름을 사용 - 만약 다른 패키지에 이름이 같은 엔티티 클래스가 있다면 충돌하 지 않도록 해야함설정하지 않으면 클래스 이름을 그..
JPA 영속성 관리 JPA가 제공하는 기능은 엔티티와 테이블을 매핑하는 설계 부분, 매핑한 엔티티를 실제 사용하는 부분으로 나눌 수 있다.매핑한 엔티티를 엔티티 매니저를 통해 어떻게 사용하는지 알아보자. 엔티티매니저는 저장,수정,삭제,조회하는 엔티티와 관련된 모든 일을 처리한다.말 그대로 엔티티를 관리하는 관리자다.개발자 입장에서 엔티티 매니저는 엔티티를 저장하는 가상의 데이터베이스로 생각하면 된다.(Hibernate 기준으로 작성할 것이다.) 엔티티 매니저 팩토리와 엔티티 매니저데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다.//공장만들기, 비용이 크다EntityManagerFactory emf = Persistence.createEntit..
JPA 시작객체 매핑회원 테이블 생성CREATE TABLE MEMBER( ID VARCHAR(255) NOT NULL, NAME VARCHAR(255), AGE INTEGER, PRIMARY KEY(ID)); 회원 클래스 생성public class Member { private String id; private String username; private Integer age; // Getter, Setter, Constructor 등등..} JPA를 사용하려면 회원 클래스와 테이블을 매핑해야 한다. 매핑 정보매핑 정보회원 객체회원 테이블클래스와 테이블MemberMEMBER기본 키idID필드와 컬럼usernameNAME필드와 컬럼ageAGE JPA가 제공하는 매..