JPA
-
[Spring Boot] JPA Flush 특징, 문제 해결Backend/개발 2022. 4. 17. 20:16
JPA 특징 중 쓰기지연과 Flush에 관련한 글이다. JPA JPA는 엔티티를 영속성 컨텍스트에서 관리하며, JPA의 모든 데이터 변경은 트랜잭션 안에서 실행된다. tx.begin() tx.commit() tx.rollback() 쓰기지연 쓰기 지연이란 트랜잭션을 커밋하기 직전까지 데이터베이스에 엔티티를 저장하지 않고 내부 쿼리 저장소에 SQL을 모아뒀다가, 트랜잭션을 커밋할 때 모아둔 쿼리를 반영하는 과정이다. 이때 실제로 반영하는 작업을 flush라고 한다. 쓰기 지연의 이점 성능상 이점 (50개의 insert를 50번씩 하는 것보다 한 번에 50개를 다 하는 게 낫다) 데이터베이스 테이블 row에 lock 걸리는 시간 최소화 Flush 플러시 하는 방법 트랜잭션 커밋 시 flush 자동 호출 em..
-
[강의] 자바 ORM 표준 JPA 프로그래밍 - 기본편 수료Backend/책,강의 2022. 3. 1. 16:30
헤헤 강의 어찌어찌 다 들었다! 사놓고 가끔씩 연관관계 헷갈릴 때 부분 부분 들었었는데 그러니까 이 강의에서 설명하는 내용이 어디서부터 어디까진지 뭘 중요하게 말하시지? 이런 흐름을 모르겠어서 그냥 만보 걷기 할 때 배속하면서 라이브 코딩 따라 하진 못하고 강의만 봤다. 그래서 수료라고 하기 살짝 민망.. 하지만 그래도 들은 건 들은 거고 강의 들어서 얻은 게 있으니까!! 사실 이전에 다 들었다고 한 스프링 핵심원리는 다 까먹어서 다시 복습하면서 정리하려고 한다 ㅎㅎ;; 그리고 강의 70% 정도들을 때 까지 아니 근데 왜 자꾸 entitymanager persist 이런 거 쓰시지..? 왜 findById 안 쓰시지 했는데 끝나갈 무렵에야 아 내가 배우고 있는 게 JPA를 구현한 hibernate 사용법..
-
[Spring Boot] mysql 연동 , DB 연관관계 고민Backend/개발 2021. 8. 4. 01:24
TIL35일차 개인프로젝트 기록 mysql 휘발성인 h2가 아닌 mysql DB에 데이터를 저장하고 로직을 구현해야할 것 같아서 mysql 연동 설정을 해주었다. mysql dependency 추가 % mysql --version mysql Ver 8.0.23 for osx10.15 on x86_64 (Homebrew) implementation('org.springframework.boot:spring-boot-starter-data-jpa') implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.23' application.yml 설정 관련 Datasource1 서로 다른 Database connection pool 구현..