jpa 매핑
[JPA]연관관계 매핑(다대일, 일대다, 일대일, 다대다)
다양한 연관관계 매핑 다대일[N:1] 일대다[1:N] 일대일[1:1] 다대다[N:M] 연관관계 매핑시 고려사항 3가지 다중성 단방향, 양방향 연관관계의 주인 다중성 다대일: @ManyToOne 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany 단방향, 양방향 테이블 외래 키 하나로 양쪽 조인 가능하다. 사실 방향이라는 개념이 존재하지 않는다. 객체 참조용 필드가 있는 쪽으로만 참조 가능 한 쪽만 참조하면 단뱡향 양쪽이 서로 참조하면 양방향 연관관계의 주인 테이블은 외래키 하나로 두 테이블이 연관관계를 맺는다. 객체 양방향 관계는 A->B, B->A 처럼 참조가 2 곳이 존재 객체 양방향 관계는 참조가 2 곳이 있다. 둘중 테이블의 외래 키를 관리할 곳을 지정해야한다. ..
[JPA] 기본 키 매핑
@Id @GeneratedValue 기본 키 매핑 방법 직접 할당: @Id만 사용 자동 생성(@GeneratedValue) IDENTITY: 데이터베이스에 위임, Mysql SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용, ORACLE @SequenceGenerator 필요 TABLE: 키 생성용 테이블 사용, 모든 DB에서 사용 @TableGenerator 필요 AUTO: 방언에 따라 자동 지정, 기본값 IDENTITY 전략 - 특징 기본 키 생성을 데이터베이스에 위임한다. 주로 Mysql, PostgreSQL, SQL Server, DB2에서 사용(예: MySQL의 AUTO_ INCREMENT) JPA는 보통 트랜잭션 커밋 시점에 INSERT SQL 실행한다. AUTO_INCREMENT는 데이터베..
[JPA] 객체와 테이블 매핑
객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. 주의 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) 저장할 필드에 final 사용 X @Entity 속성 관리 ex) @Entity (name=?) JPA에서 사용할 엔티티 이름을 지정한다. 기본값: 클래스 이름을 그대로 사용한다. 같은 클래스 이름이 없으면 가급적 기본값을 사용한다. @Table @Table은 엔티티와 매핑할 테이블 지정 속성 기능 기본값 속성 기능 기본값 name 매핑할 테이블 이름 엔티티 이름을 사용 catalog 데이터베이스 ca..