일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javascript
- CSS
- 플로이드-워셜 알고리즘
- db
- Docker
- DFS
- 데이터베이스
- Algorithm
- java
- CS
- jpa
- redis
- 영속성 컨텍스트
- HTML
- Data structure
- 트랜잭션
- 프로그래머스
- PYTHON
- 완전탐색
- 자료구조
- websocket
- OS
- 알고리즘
- BFS
- spring
- It
- 운영체제
- nosql
- 백준
- mysql
- Today
- Total
목록ORM (2)
If at first you don't succeed, try again
* 개요JPA를 공부하다 보니, flush와 commit에 대한 개념이 너무 헷갈렸다.두 개의 작업은 데이터를 데이터베이스에 반영한다는 점에서는 비슷하지만 엄연히 다르다고 한다.이를 정리하기 위해 글을 쓰게 되었다. * flush()란?flush()는 영속성 컨텍스트의 변경사항을 즉시 데이터베이스에 반영(동기화)하는 역할을 한다.즉, 데이터베이스와 영속성 컨텍스트 사이의 스냅샷을 일치시키는 작업이다. - 스냅샷 : 엔티티를 영속성 컨텍스트에 보관할 때, 최초 상태를 복사해서 저장해두는 것 다만, 트랜잭션을 커밋하지는 않는다.이는 에러 발생 시, ROLLBACK이 가능한 단계까지만 반영하는 작업임을 알 수 있다.그리고 flush()가 호출되면 변경된 엔티티가 SQL로 변환되어 실행되지만, 트랜잭션이 끝난 ..

* JPA란?JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준이다. JPA는 애플리케이션과 JDBC 사이에서 동작한다. * ORM이란?ORM(Object-Relational Mapping)은 객체와 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. * MyBatis vs JPA특징MyBatisJPA방식SQL 기반 매핑객체 중심 매핑 (ORM)쿼리 작성 방식직접 SQL 작성 (XML 또는 Annotation)JPQL, Criteria API, Native SQL성능SQL 튜닝 가능 (최적화 용이)캐싱, 지연 로딩 지원 (대량 데이터 처리 유리)복잡한 쿼리복잡한 JOIN, 서브쿼리 최적화 가능복잡한 쿼..