연관관계 매핑 기초
·
JPA
객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래키를 매핑 용어 이해 용어 설명 방향 단방향, 양방향 다중성 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:N) 연관관계의 주인 객체 양방향 연관관계는 관리 주인이 필요 연관관계가 필요한 이유 객체지향 설계의 목표는 자율적인 객체들의 "협력 공동체" 를 만드는 것이다. 예제 시나리오 회원과 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계이다. 연관관계 설정 전 package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Ent..
쇼핑몰 만들기 1. 요구사항 분석과 기본 매핑
·
JPA
요구사항 회원은 상품을 주문할 수 있다. 주문 시 여러 종류의 상품을 선택할 수 있다. 지금은 maven이라 실행시 그대로 컬럼을 저장하지만 Spring boot에서 hibernate를 사용하면 스네이크표기법(order_id)으로 컬럼이 추가된다. public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); //트랜잭션 시작 try{ Or..
기본 키 매핑
·
JPA
기본키 매핑과 관련된 Annotation은 @Id, @GeneratedValue 두가지가 있다 설명 직접할당 @Id만 사용 자동할당 @GeneratedValue - IDENTITY : 데이터베이스에 위임, MYSQL - SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용, ORACLE @SequenceGenerator 필요 - TABLE: 키 생성용 테이블 사용, 모든 DB에서 사용 @TableGenerator 필요 - AUTO: 방언에 따라 자동 지정, 기본값 자동할당 IDENTITY 전략 - 특징 기본 키 생성을 데이터베이스에 위임 주로 MySQL, PostgreSQL, SQL Server, DB2에서 사용(예: MyySQL의 AUTO_INCREMENT) JPA는 보통 트랜잭션 커밋 시점에 INSER..
필드와 컬럼 매핑
·
JPA
예시 요구사항 1. 회원은 일반 회원과 관리자로 구분해야 한다. 2. 회원 가입일과 수정일이 있어야 한다. 3. 회원을 설명할 수 있는 필드가 있어야 한다. 이 필드는 길이 제한이 없다. package hellojpa; import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.Date; @Entity @NoArgsConstructor public class Member { @Id private Long id; @Column(name="name") private String username; private Integer age; @Enumerated(EnumType.STRING) private RoleType roleType..
데이터베이스 스키마 자동 생성
·
JPA
JPA는 Application 로딩 시점에 DB Table 생성하는 기능도 지원한다. DDL을 애플리케이션 실행 시점에 자동 생성 테이블 중심 -> 객체 중심 DB 방언을 활용해서 DB에 맞는 적절한 DDL 생성 이렇게 생성된 DDL은 운영이 아닌 개발 단계에서만 사용해야한다 사용법 persistence.xml에 위에 옵션을 추가해준다. 데이터베이스 스키마 자동 생성 - 속성 옵션 설명 create 기존테이블 삭제 후 다시 생성(Drop + create) create-drop create와 같으나 종료시점에 테이블 Drop(테스트코드 실행할 때 주로 사용) update 변경분만 반영(운영 DB에는 사용하면 안됨) - 추가만 가능! validate 엔티티와 테이블이 정상 매핑되어있는지만 확인 none 사용..
객체와 테이블 매핑
·
JPA
엔티티 매핑 소개 엔티티 매핑 객체와 테이블 매핑 @Entity, @Table 필드와 컬럼 매핑 @Column 기본 키 매핑 @Id 연관관계 매핑 @ManyToOne, @JoinColumn 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 주의 기본 생성자 필수(파라미터가 없는 public 또는 protexted 생성자) final클래스. enum, interface, inner 클래스 사용x 저장할 필드에 final사용 x @Table 속성 속성 기능 기본값 name 매핑할 테이블 이름 catalog DB catalog 매핑 schema DB 스키마 매핑 uniqueConstraints DDL ..
BE전문가 프로젝트
'JPA' 카테고리의 글 목록 (7 Page)