본문 바로가기

프로그래밍/JPA

(5)
JPA_테이블 생성 1. JPA 활용해서 테이블 설계 및 생성 (User, Board, Reply) User.java HTML 삽입 미리보기할 수 없는 소스 Board.java HTML 삽입 미리보기할 수 없는 소스 Reply.java HTML 삽입 미리보기할 수 없는 소스 2. JPA를 활용해서 테이블 컬럼에 제약 설정 및 외래키 지정하기 User.java HTML 삽입 미리보기할 수 없는 소스 Board.java HTML 삽입 미리보기할 수 없는 소스 Reply.java HTML 삽입 미리보기할 수 없는 소스 Board 테이블을 가지고 올 때 Reply에 대한 데이터도 필요하다면 mapped를 설정해줄 수 있다. HTML 삽입 미리보기할 수 없는 소스 → 연관 관계의 주인이란 ? FK 컬럼을 들고 있는 테이블의 주인이다..
JPA_JPA yml 파일 설정 의존성 추가 org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl yml 파일 server: port: 8080 servlet: context-path: / spring: mvc: view: prefix: /WEB-INF/view suffix: .jsp datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/green_blog?serverTimezone=Asia/Seoul username: ten password: 1q2w3e4r5t! jpa: open-in-view: true hibernate: ddl-auto: create namin..
JPA_더티체킹(dirty checking) 더티 체킹 : 더티 체킹(dirty checking)은 JPA에서 영속성(persistence) 컨텍스트가 관리하는 엔티티 객체의 변경 사항을 감지하는 매커니즘이다. 영속성 컨텍스트는 엔티티를 수정하면 엔티티의 상태를 자동으로 감지하고, 수정된 상태를 데이터베이스에 자동으로 반영한다. 이를 더티 체킹이라고 한다. 즉, 더티 체킹은 상태 변경 검사이다. JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔티티 객체를 데이터베이스에서 자동으로 반영해준다. (commit 처리) User.java HTML 삽입 미리보기할 수 없는 소스 DummyControllerTest.java eamil, password 수정 처리 로직 구현 1번 방식 : 기존 로직 처리 (save 처리) HTML 삽입 미리보기할 수 ..
JPA_Pageable 페이징 처리 JPA에서 페이징과 정렬 org.springframework.data.domain.Pageable → 페이징을 제공하는 인터페이스 org.springframework.data.domain.Page → 페이징의 findAll()의 기본적인 반환 메서드로 여러 반환 타입 중 하나이다. 결국 findAll() 메서드를 Pageable 인터페이스로 파라미터를 넘기면 페이징을 할 수 있다. Optional : JPA 사용 시 Repository에서 리턴 타입을 Optional로 받을 수 있다. Optional을 사용하면 반복적인 null 체크를 줄일 수 있다. 1. get() → .get()은 결과값이 null일 경우 NoSuchElementException을 발생시킨다. Optional 내부에 담긴 객체가 nu..
JPA_JPA와 connection pool JPA란 ? : JPA(Java Persistence API)는 자바 진영의 ORM(Object-Realational Mapping)프레임 워크를 사용하기 위한 인터페이스를 모아둔 것이다. 여기서 ORM이란 Java 객체를 데이터베이스 테이블로 변환하는 프로세스를 말한다. 즉, 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 기술이다. (코드를 짜면 데이터베이스가 생성됨.) JPA 의존성 추가하기 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j' JPA 특징 7가지 1. Java Persistence API 2. JPA ORM 기술 3. JPA는..