일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바ORM표준JPA프로그래밍
- 디자인패턴
- Database
- Hibernate
- 논문
- 논문리뷰
- 딥러닝
- 자바
- 알고리즘
- Python
- 장애물인식
- MySQL
- 자료구조
- 이펙티브자바
- cartograhper
- 영속성컨텍스트
- DeepLearning
- Jetson
- Java
- 프로그래머스
- Spring Batch
- 자율주행
- 운영체제
- 포인트클라우드
- 네트워크
- persistance context
- 파이썬
- 배달로봇
- 아두이노
- JPA
- Today
- Total
목록flush (2)
제리 devlog
이번에는 엔티티 수정과정을 디버깅해보자. 엔티티를 수정하면 jpa에서는 dirty checking을 하고 update쿼리를 생성해준다. 정확히는 flush과정을 디버깅한다. 수정 과정 @Test @Transactional fun `update order`() { val order = Order(price = 1000) orderJpaRepository.save(order) order.price = 2000 orderJpaRepository.flush() } 먼저, order가 저장되는 부분에서 알고 넘어갈 부분이 있다. entitiy가 영속화되면 영속성 컨텍스트 내부에 entityEntryContext에 entityEntry가 저장된다. 이 entityEntry에는 loadState라는 것이 있다. 이 ..
영속성 컨텍스트란? 엔티티를 영구 저장하는 환경이라는 뜻이다. 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 저장한다. em.persist(member); 이 코드는 단순히 회원 엔티티를 저장하는 것이 아니다. persist()는 엔티티 매니저를 사용해서 엔티티를 영속성 컨텍스트에 저장한다. 영속성의 생명주기에는 4가지가 있다. 1. 비영속 엔티티의 객체를 생성한 상태이며 아직 저장하지 않았다. 따라서 영속성 컨텍스트나 데이터베이스에 관련이 없는 비영속상태이다. Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); 2. 영속 엔티티 매니저를 통해 엔티티를 영속성 ..