본문 바로가기

spring23

자바 ORM 표준 JPA 프로그래밍 - 5장 연관관계 매핑 기초 작성자: 한창훈 ERD 에는 총 4가지 관계가 있다. 이를 JPA의 연관관계 매핑으로 매치시키면 하기와 같다. 일대일(1:1) - @OneToOne 일대다(1:N) - @OneToMany 다대일(N:1) - @ManyToOne 다대다(N:N) - @ManyToMany 📜 @OneToOne 속성기능기본값 targetEntity 연관관계 매핑의 대상이 되는 타겟을 설정한다. field의 class명 cascade database의 cascade와 동일하다. - fetch 로딩 전략. EAGER가 기본값이며, EAGER일 경우 즉시로딩을 의미한다. LAZY는 지연로딩을 의미한다. EAGER optional null인지 아닌지를 설정한다. 기본값은 true이며 nullable함을 의미한다. true mapped.. 2021. 7. 5.
자바 ORM 표준 JPA 프로그래밍 - 3장 JPA 영속성 컨텍스트 영속성 관리 엔티티 매니저는 엔티티를 저장, 수정, 삭제, 조회 등등 엔티티와 관련된 모든 일을 처리한다. 말그대로 엔티티를 관리하는 것이다. 엔티티 매니저 팩토리와 엔티티 매니저 DB를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다. 팩토리를 만드는 것으로 생성할 때 비용이 아주 많이 든다. EntityManagerFactory emf = Persistence.createEntityManagerFactory(""); 교재에서는 이것을 통해 META-INF/persistence.xml에 persistence-unit name에 매핑된 값을createEntityManager에 넣어준다. 필요할때마다 엔티티 매니저 팩토리에서 엔티티 매니저를 생성하면 된다. .. 2021. 7. 5.
자바 ORM 표준 JPA 프로그래밍 - 2장 JPA시작 2.2 H2 DB설치 already port in use Exception : C:/Users/[username] > h2.properties 파일에서 port 설정 변경할 수 있습니다. H2 콘솔 server 실행할 때 Database "C:/Users/klyhy/test" not found, either pre-creat : JDBC URL : jdbc:h2:~/test 로 먼저 연결한다음 (DB가 설치됨) localhost를 연결합니다. 2.5 JPA 설정 교재에선 hibernate 의존을 사용했지만 스터디 프로젝트는 hiberante core, jpa가 내장된 spring-boot-starter-data-jpa를 사용합니다. spring.datasource로 시작하는 속성을 사용합니다. DB 방언.. 2021. 7. 5.
자바 ORM 표준 JPA 프로그래밍 - 1장 JPA 소개 1장 JPA 소개 JDBC API를 직접 사용해서 코딩하면 비즈니스 로직보다 SQL, JDBC API를 작성하는데 더 오랜 시간이 걸림 → JPA를 사용하여 문제 해결 1.1 SQL을 직접 다룰 때 발생하는 문제점 관계형 데이터베이스는 가장 대중적이고 신뢰할 만한 안전한 데이터 저장소 → 자바로 개발하는 애플리케이션은 대부분 관계형 데이터베이스를 저장소로 사용 1.1.1 반복, 반복 그리고 반복 JPA를 사용하지 않고 SQL을 직접 다루게 되는 경우, 다수의 코드 작성 필요 DAO(데이터 접근 계층)을 개발하는 일은 반복의 연속 1.1.2 SQL에 의존적인 개발 데이터 접근 계층을 사용해서 SQL을 숨겨도 어쩔 수 없이 DAO를 열어서 어떤 SQL이 실행되는지 확인해야 한다는 문제점 발생 SQL에 의존하.. 2021. 7. 5.
자바 ORM 표준 JPA 프로그래밍 - 4장 엔티티 매핑 데이터베이스 스키마 자동 생성 JPA는 스키마를 자동으로 생성하는 기능을 지원한다. spring: jpa: hibernate: ddl-auto: create // create-drop, update, validate, none(default) 이 설정을 추가하면 애플리케이션 실행 시점에 데이터베이스 테이블을 자동으로 조건에 맞게 생성, 수정, 검증 등 작업을 해준다. 옵션 설명 create 기존 테이블을 삭제하고 새로 생성한다. DROP + CREATE create-drop create 속성에 추가로 애플리케이션을 종료할 때 생성한 DDL을 제거한다. DROP + CREATE + DROP update 데이터베이스 테이블과 엔티티 매핑정보를 비교해 변경사항만 수정한다. validate 데이터베이스 테이블과.. 2021. 6. 24.
Spring Data Event Handler Spring Data Event Handler Spring에서 Event를 다루는 방법이 있지만 포스팅에서는 Spring Data가 제공하는 Event를 다루는 법에 대해 사용하려 한다. Spring Data에서 제공하는 방법이 Spring framework가 제공하는 방법보다 간단하고 쉽다. 먼저 프로젝트를 만들고 build.gradle을 다음과 같이 설정해준다. plugins { id 'org.springframework.boot' version '2.5.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.event' version = '0.0.1-SNAPSHOT' sourceCompatibi.. 2021. 6. 19.