일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- cartograhper
- 네트워크
- 프로그래머스
- JPA
- 배달로봇
- Python
- MySQL
- 자료구조
- 알고리즘
- 딥러닝
- 논문
- persistance context
- Spring Batch
- Java
- 이펙티브자바
- 영속성컨텍스트
- 아두이노
- DeepLearning
- Database
- 포인트클라우드
- 자바ORM표준JPA프로그래밍
- 자바
- 파이썬
- 운영체제
- Jetson
- 장애물인식
- Hibernate
- 논문리뷰
- 자율주행
- 디자인패턴
- 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. 영속 엔티티 매니저를 통해 엔티티를 영속성 ..