연관관계가 필요한 이유‘객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다.’ 조영호(객체지향의 사실과 오해) 예제 시나리오 회원과 팀이 있다.회원은 하나의 팀에만 소속될 수 있다.회원과 팀은 다대일 관계다. 객체를 테이블에 맞추어 모델링 (연관관계가 없는 객체) 객체를 테이블에 맞추어 모델링 (참조 대신에 외래 키를 그대로 사용)@Entitypublic class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "USERNAME", nullable = false) private String name; @Column(name = "..
객체와 테이블 매핑엔티티 매핑 소개 객체와 테이블 매핑: @Entity, @Table필드와 컬럼 매핑: @Column기본 키 매핑: @Id연관관계 매핑: @ManyToOne,@JoinColumn@Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다.JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수주의기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자)JPA는 리플렉션 같은 다양한 기술들을 써서 객체를 프록시 하는데 이런 것들을 위해 기본 생성자는 필수final 클래스, enum, interface, inner 클래스 사용 X저장할 필드에 final 사용 XDB에 저장하고 싶은 필드에는 final 사용 안됨@Entity 속성 정리 속성: nameJP..
JPA에서 가장 중요한 두 가지객체와 관계형 데이터베이스 매핑하기(Object Relational Mapping)DB를 어떻게 설계하고 객체를 어떻게 설계해서 중간에서 어떻게 JPA를 매핑해서 쓸 껀지(설계관점)영속성 컨텍스트실제 JPA가 내부에서 어떻게 동작하는지영속성 컨텍스트를 명확하게 이해하면 JPA가 내부적으로 어떻게 동작하는지 이해할 수 있다.엔티티 매니저 팩토리와 엔티티 매니저엔티티 매니저 팩토리를 통해서 고객의 요청이 올 때마다 엔티티 매니저를 생성한다.엔티티 매니저는 내부적으로 데이터베이스 커넥션을 사용해서 DB를 사용한다.영속성 컨텍스트JPA를 이해하는데 가장 중요한 용어영속성 컨텍스트를 한국어로 쉽게 풀어보면 “엔티티를 영구 저장하는 환경”이라는 뜻EntityManager.persist..
JPA 구동 방식JPA는 Persistence라는 클래스가 있다여기서 설정 정보를 조회해서 EntityManagerFactory라는 클래스를 만든다.EntityManagerFactory에서 EntityManager을 생성해서 사용한다.객체와 테이블을 생성하고 매핑하기테이블 생성create table Member ( id bigint not null, name varchar(255), primary key (id));테이블에 매핑되는 객체 생성@Entitypublic class Member { @Id private Long id; private String name; //Getter, Setter …}@Entity: JPA가 관리할 객체처음 로딩될때 @Entity를 통..