JPA

·JPA
플러시플러시는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것이다.보통 트랜잭션이 커밋되면 자동으로 플러시가 일어난다고 보면 된다. 플러시가 일어나면?변경 감지쓰기 지연 SQL 저장소의 쿼리를 DB에 전달👀 플러시가 일어나도 1차 캐시에는 변화가 없다. 단지 변경 감지로 쓰기 지연 SQL 저장소에 있던 쿼리가 DB에 반영되는 것! 영속성 컨텍스트를 플러시하려면?직접 호출: em.flush()자동 호출: 트랜잭션 커밋, JPQL 쿼리 실행 강조🗣️- 플러시는 영속성 컨텍스트를 비우는 것이 아니다.- 영속성 컨텍스트를 DB에 동기화하는 것이다.  준영속 상태영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태이다.이 상태에선 단순히 애플리케이션 메모리 상에 객체 인스턴스로 존재한다.영속성 컨텍스..
·JPA
ORM 기술이란?객체를 관계형 데이터베이스와 맵핑해주는 기술이다.이 기술 덕분에 개발자는 반복적인 SQL을 직접 작성하지 않는다.대신, ORM 기술이 SQL을 동적으로 만들어 실행한다.추가로, 데이터베이스마다 다른 SQL을 사용해야하는 문제도 중간에서 해결해준다. JPA는 자바 진영의 ORM 표준 인터페이스이며, 하이버네이트는 이를 구현한 것이다. JPA 구동 방식1. 설정 정보를 바탕으로 EntityManagerFactory 생성2. 요청마다 EntityManager 생성 - 엔티티 매니저 팩토리는 하나만 생성된 후 애플리케이션 전체에서 공유한다.- 엔티티 매니저는 쓰레드 간에 공유되지 않아야 한다.- JPA의 모든 데이터 변경은 트랜잭션 내에서 실행한다. 영속성 컨텍스트엔티티를 영구 저장하는 환경으로..
·JPA
스프링부트에서 MySQL과 JPA를 연동하는 방법을 살펴보겠다. 1. build.gradle 설정dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j' ...}위 두줄이 필요하다. 2. application.yml에 DB 정보 추가spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:{포트번호}/{데이터베이스 이름}?useSSL=false&serverTimezone=Asia/Seoul&character..
HipPopoTamUs
'JPA' 카테고리의 글 목록