Java/JPA43 [JPA_Basic] 양방향 매핑 시, 값이 입력되지 않는 경우 이 글은 김영한의 [자바 ORM 표준 JPA 프로그래밍 - 기본편]을 수강하며 정리한 글입니다. 👉 기본 환경 - Language: Java - DB: H2 Database - IDE: IntelliJ 1. Entity 상태 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String name; @ManyToOne /.. 2023. 8. 13. [JPA_Basic] 객체 지향 모델링 이 글은 김영한의 [자바 ORM 표준 JPA 프로그래밍 - 기본편]을 수강하며 정리한 글입니다. 👉 기본 환경 - Language: Java - DB: H2 Database - IDE: IntelliJ 1. 객체를 테이블에 맞춰 모델링 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package jpa_basic; import javax.persistence.*; import java.util.Date; @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_.. 2023. 8. 8. [JPA_Basic] 기본키 매핑 이 글은 김영한의 [자바 ORM 표준 JPA 프로그래밍 - 기본편]을 수강하며 정리한 글입니다. 👉 기본 환경 - Language: Java - DB: H2 Database - IDE: IntelliJ 1. 기본키 직접 할당 1 2 3 4 5 6 7 @Entity public class Member { @Id // PK 지정 필수, PK 직접 할당 private Long id; } 2. 기본키 자동 생성: @GeneratedValue 2.1. AUTO - Default - DB 방언에 맞춰 Value 자동 생성 2.2. IDENTITY 1 2 3 4 5 6 7 8 @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDE.. 2023. 8. 5. [JPA_Basic] 데이터베이스 스키마 자동 생성 이 글은 김영한의 [자바 ORM 표준 JPA 프로그래밍 - 기본편]을 수강하며 정리한 글입니다. 👉 기본 환경 - Language: Java - IDE: IntelliJ JPA에서는 DDL을 애플리케이션 실행 시점에 자동 생성해주는 기능을 보유 1 2 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ⭐ 이렇게 생성된 DDL은 개발 장비에서만 사용 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용 hibernate.hbm2ddl.auto 옵션 - create: 기존테이블 삭제 후 다시 생성 (DROP + CREATE) 1 2 - create-drop: create와.. 2023. 7. 31. [JPA_Basic] Persistence Context 장점 이 글은 김영한의 [자바 ORM 표준 JPA 프로그래밍 - 기본편]을 수강하며 정리한 글입니다. 👉 기본 환경 - Language: Java - IDE: IntelliJ 1. 1차 캐시 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public class Main { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); // EntityManagerFactory: Application Loading 시점에 1개만 생성(DB당 1개) Entity.. 2023. 7. 29. [JPA] @PrePersist 🌿 기본 환경: IDE: STS4, Language: Java JPA에서 Custom ID를 부여하기 위해서는 테이블 작업 이후, 추가적인 과정이 필요 MySQL에서는 Sequence를 제공하지 않으므로 그에 대한 대안으로, sequence 테이블을 만들고 trigger와 연동시키는 과정이 필요 1. Sequence table 생성 1 2 3 4 CREATE TABLE tempSeq ( sequence_value INT AUTO_INCREMENT PRIMARY KEY ); 2. Trigger를 선언하여 seq를 사용하는 테이블과 연결 1 2 3 4 5 6 7 8 9 10 11 12 13 14 DELIMITER // CREATE TRIGGER tempSeqTrigger BEFORE INSERT ON tem.. 2023. 6. 25. 이전 1 2 3 4 5 6 7 8 다음