일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 싸피
- 인프런
- 알고리즘 자바
- ssafy
- 자바 알고리즘
- jpa
- 싸피11기
- 싸피셜
- 자바스크립트 자료구조
- 싸피 대전캠퍼스
- 자바스크립트
- 비동기
- 자바 코딩테스트
- 백준
- 알고리즘
- 싸피 12기
- 자료구조
- 프로그래머스
- 코딩테스트
- 리액트
- 싸피 기자단
- SSAFYcial
- 코드트리
- 프론트엔드
- 개발자
- 싸피 11기
- 싸피 10기
- 코딩테스트 자바
- 싸피10기
- swea
- Today
- Total
목록자바 Java/Spring (4)
병아리의 코딩 일기
플러시란 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것을 말한다. DB 트랜젝션이 커밋될 때 플러시가 일어나는데 우리가 쌓아놨던 insert, delete, update 등의 쿼리들이 DB로 날라가는 것이다. 영속성 컨텍스트의 변경사항과 DB를 맞추는 작업이 flush이다. transaction 이 커밋되어 플러시가 발생하면 생기는 일 1. 변경 감지 2. 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 3. 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법 1. em.flush() - 직접 호출 2. 트랜잭션 커밋 - 플러시 자동 호출 3. JPQL 쿼리 실행 - 플러시 자동 호출 (그냥 그렇구나 하고 이해만 하기) 플러시는! 영..
저번 시간에는 영속성 컨텍스트란 무엇인지에 대해 알아보았다. 이번엔 '영속성 컨텍스트가 가진 이점'에 대해 알아보자! 1. 1차 캐시에서 조회한다. Member member = new Member(); member.setId("member1"); member.setName("회원1"); //1차 캐시에 저장됨 em.persist(member); //1차 캐시에서 조회 Member findMember = em.find(Member.class, "member1"); 멤버 객체를 만들고 영속성 컨텍스트에 담으면 @Id : "membrer1"를 Key , Entity : Member 를 값으로 하는 1차 캐시가 생성된다. 그래서 findMember를 할 때 1차 캐시에서 조회한다. 즉, 실행해보면 select ..
JPA에서 가장 중요한 2가지 1. 객체와 관계형 데이터베이스 매핑하기(ORM = Object Relational Mapping) 2. 영속성 컨텍스트 영속성 컨텍스트란? JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경" EntityManager.persist(entity); -> 사실 db에 저장한다는 것이 아니라 엔티티를 영속성 컨텍스트라는 곳에 저장한다는 것! 엔티티 매니저? 영속성 컨텍스트? 영속성 컨텍스트는 논리적인 개념이다. 눈에 보이지 않는다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다. EntityManager 를 실행하면 PersistenceContext 가 생성이 된다. 엔티티의 생명주기 엔티티는 생명주기가 4가지 있다. 비영속 : 최초에 entity를 생성한 ..
이번 시간에는 JPA 구동 방식에 대해 알아보자. 1. JPA는 Persistence 라는 클래스로부터 시작한다. 2. 여기서 META-INF/persistence.xml 에 우리가 설정한 설정 정보를 읽어서 3. EntityManagerFactory 라는 클래스를 만든다. 4. 이 공장에서 뭔가 필요할 때마다 EntityManager 라는 걸 찍어내서 돌리면 된다. 위의 내용을 코드로 확인해보자. 주의!! 1. 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유된다. 2. 엔티티 매니저는 쓰레드 간에 공유하지 않는다. (사용하고 버려야 한다.) 3. JPA의 모든 데이터 변경은 트랜잭션 안에서 실행해야 한다. (매우 중요!)