일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Multi Transaction
- 트랜잭션 쓰기 지연
- JDK
- ManyToMany
- MaxRAMPercentage
- ManyToOne
- OneToOne
- Design Pattern
- OneToMany
- OracleJDK
- mybatis
- 영속화
- docker
- Entity
- exit code
- K8s
- dirty check
- 종료코드
- 변경 감지
- 다중 데이타소스
- SpringBoot 2.0
- chroot exit code
- Java
- JPA
- 다중 트랜잭션
- 디자인 패턴
- Multi Datasource
- 활성프로브
- SpringBoot
- openjdk
- Today
- Total
목록영속화 (2)
조금 평범한 개발 이야기
개요 mybatis 와 같은 query template 엔진이 아니라 JPA 와 같은 ORM 을 사용하다 보면 기대하는 영속화 (DB 에 값을 쓰는) 시점과 실제 영속화 시점이 달라 당황 할 수 있습니다. 이것은 JPA 가 값 (Entity) 을 관리하는 방식이 조금 차이가 있기 때문 입니다. 이 문서에서는 JPA 에서 영속화 하는 시점에 대해서 설명하고 있습니다. 영속성 컨텍스트(Persistence Context) JPA 의 영속화에 대해 알아보기 위해선 가장 먼저 영속성 컨텍스트에 대해 이해해야 합니다. 자바는 OOP 개념을 가지고 데이터를 객체처럼 관리 하고 데이터베이스(RDB) 는 관계형으로 데이터를 관리 합니다. 그래서 이 간극을 매우기 위해 ORM 이라는 개념이 등장 했습니다. ORM 에서는..
Entity 에 있는 데이타를 조회하거나 저장과 변경 그리고 삭제를 할때 Spring JPA 에서 제공하는 Repository 라는 인터페이스를 정의해 해당 Entity 의 데이타를 사용 할 수 있습니다. Repository 는 내부적으로 EntityManager 가 직접 대상 Entity의 데이타를 관리하고 있기 때문에 굳이 Repository 인터페이스를 정의하지 않고도 직접 EntityManager 를 사용해 Persistance Layer 를 구현 할 수도 있지만 Spring JPA 에서 Repository 의 내부 구현체를 자동으로 생성시켜 주기 때문에 별도의 구현체를 따로 생성하지 않아도 됩니다. Repository 는 대게 Entity 와 1:1 로 매칭된다고 볼 수도 있으나 꼭 그런것은 아..