JPA 기초 - 연관 관계의 이해
·
JPA
본 내용은 유튜브 나무소리님의 강의 내용을 정리한 내용입니다. JPA 4-1강 관계 매핑 기본(1) 연관 관계의 이해 JPA에서 연관관계는 영속객체(Entity)간의 관계를 의미 합니다. 영속객체 간의 연관관계는 방향성(direction)을 가지며 단방향, 양방향 그 특성에 따라 구분합니다. 연관관계는 관계의 다중성(multiplicity)에 따라 일대일(1 : 1), 일대다(1 : N), 다대다(N : M)관계로 구분합니다. 영속객체가 테이블과 매핑되는 것과 마찬가지로 영속객체간의 관계는 테이블간의 관계와 매핑됩니다. 영속객체간 관계 그리고 테이블간 관계에는 차이가 있으며 이를 이해하고 매핑을 구성하는 것이 중요합니다. * 테이블의 관계에 따라 매핑 // Student Class package com...
JPA 기초 - 필드와 컬럼 매핑(@Temporal, @Lob, @Enumerated, @Translent)
·
JPA
본 내용은 유튜브 나무소리님의 강의 내용을 정리한 내용입니다. JPA 3-5강 Entity Mapping(5) @Temporal 어노테이션 @Temporal 어노테이션은 영속 객체의 날짜 및 시간 필드에 적용합니다. 자바의 날짜 및 시간 정보는 년, 월, 일과 시, 분, 초를 하나의 필드로 표현할 수 있지만 데이터베이스에 따라 날짜, 시간, 날짜와 시간 컬럼의 타입이 다르기 때문에 이를 @Temporal 어노테이션으로 지정할 수 있습니다. Java 8 이후에는 java.time 패키지의 LocalDate, LocalTime, LocalDateTime을 사용할 경우 적용하지 않습니다. @Entity @Table(name = "USERS") public class User { @Id @Column(name ..
JPA 기초 - 기본키 매핑(Table), 필드와 컬럼 매핑(@Column)
·
JPA
본 내용은 유튜브 나무소리님의 강의 내용을 정리한 내용입니다. JPA 3-4강 Entity Mapping(4) Table 기본키 생성 전략 기본키 생성을 위해 별도의 테이블을 생성하고 이 테이블을 이용해 기본키를 생성합니다. Table 기본키 생성 전략은 별도의 테이블을 생성하기 때문에 데이터베이스 종류에 영향을 받지 않습니다. Table 생성 전략을 적용하기 위해서는 @TableGenerator 어노테이션이 필요하며 여러 옵션을 적용할 수 있습니다. Table 생성 전략은 테이블 생성과 키값 증가를 위한 update가 실행되기 때문에 성능에 대한 고려가 필요합니다. package com.example.jpa.entity; ... @NoArgsConstructor @Data @Entity @Table(n..
JPA 기초 - 기본키 생성 전략(Sequence)
·
JPA
본 내용은 유튜브 나무소리님의 강의 내용을 정리한 내용입니다. JPA 3-3강 Entity Mapping(3) Sequence 기본키 생성 전략 Sequence 생성 전략은 데이터베이스의 Sequence 오브젝트를 이용해 기본키를 생성하는 방식입니다. 이 전략은 Sequence 오브젝트를 제공하는 Oracle, PostgreSQL, DB2 데이터베이스 등에서 적용할 수 있습니다. Sequence 전략을 사용하기 위해서는 @SequenceGenerator가 필요하며 이 어노테이션을 이용해 여러 옵션을 적용할 수 있습니다. 이 전략도 Identity 전략과 마찬가지로 데이터가 발생할 때 생성되는 Sequence를 받아 영속 객체를 관리합니다. package com.example.jpa.entity; ... ..