분류 전체보기510 영속성 컨텍스트 - 쓰기 지연 영속성 컨텍스트에서는 쓰기 지연 이라는 트랜잭션을 지원한다. em.persist 를 통해 영속성 컨텍스트로 들어가면 바로 DB 에 SQL 문을 날리는 것이 아닌, 쓰기 지연 SQL 저장소로 들어가게 된다. 이후, commit 을 하거나 flush 를 실행하면 DB 에 Insert 쿼리문이 넘어가게 되어 DB 에 저장되게 된다. tx.begin(); // 트랜잭션 시작 Member memberA = new Member(111L, "memberA"); Member memberB = new Member(112L, "memberB"); em.persist(memberA); em.persist(memberB); // 여기까지 DB 에 Insert SQL 을 보내지 않는다. tx.commit(); // 커밋해야 S.. 2022. 9. 20. 영속성 컨텍스트 - 동일성보장 같은 트랜잭션안에서의 엔티티는 조회 시 동일성을 보장한다. Member member1 = em.find(Member.class, 50L); Member member2 = em.find(Member.class, 50L); System.out.println(member1 == member2); // True + 동일성 보장으로 인해 발생하는 데이터 동기화 문제가 있으며, 어떻게 해결해야 하는지에 대해서는 추후 추가 https://devhyogeon.tistory.com/6 JPA의 동일성 보장으로 인해 발생하는 데이터 동기화 문제 이 글의 내용과 예제에는 Spring Data JPA에서 사용하는 벌크 연산과 @Modifying의 clearAutomatically attribute에 대한 이해가 필요하므로 아.. 2022. 9. 20. 영속성 컨텍스트 - 1차 캐시 영속성 컨텍스트의 이점 - 1차 캐시 영속성 컨텍스트 안에는 1차캐시가 들어있다. 1차 캐시는 EntityManager가 관리하는 영속성 컨텍스트 내부에 있는 첫번째 캐시이다. 1차 캐시의 동작과정 1. 조회 시 1차 캐시에 데이터가 있는지 확인 후 있으면 데이터를 가져온다. 2. 1차 캐시에 없다면 DB 에서 확인하기 위해 데이터를 요청한다. 3. DB 에 값이 있다면 1차 캐시에 저장 후, 이후 조회 시 1차 캐시에서 조회한다. 1차 캐시에 값이 저장 Member member = new Member(1L, "Jo"); em.persist(member); 조회 하는 방법 - em.find( 엔티티클래스, 찾는PK값 ) em.find(Member.class, 1L); 2022. 9. 20. 영속성 컨텍스트 - 엔티티 생명주기 영속성 컨텍스트는 엔티티를 영구 저장하는 환경이라는 의미를 가진다. 먼저, 엔티티의 생명주기에 대해 확인해야 한다. 비영속과 준영속의 차이점에 대해 잘 확인하자. 1. 비영속 : 영속성 컨텍스트와 관계가 없는 상태 // 비영속상태 -> 생성만 한 상태 Member member = new Member(); member.setId(100L); member.setName("HelloJPA"); 2. 영속 : 영속성 컨텍스트에 관리되는 상태 // 영속상태 -> em.persist를 사용한다 em.persist(member); 3. 준영속 : 영속성 컨텍스트에 관계되어 있다가 분리된 상태 // 준영속상태 em.detach(member); 4. 삭제 : 삭제된 상태 //삭제 em.remove(member); 2022. 9. 20. JPA 동작원리 JPA ( Java Persistence API ) - 자바 객체와 관계형 DB 사이를 매핑하는 ORM 기술 표준 - 스프링에서 제공하는 것이 아닌, JAVA 에서 제공하는 API - 라이브러리가 아닌, 인터페이스 구동방식 - 설정 정보를 조회 및 기준으로 하여 EntityManagerFactory를 생성한다. EntityManager는 하나만 생성하여 공유한다. - EntityManagerFactory 를 통해 EntityManager 가 생성된다 EntityManager는 쓰레드간 절대 공유하지 않는다. 사용하고 폐기한다. - JPA의 모든 데이터 변경은 트랜잭션 안에서 실행한다. 조회를 제외한 등록, 수정, 삭제 모두 META-INF/persistence.xml 예제 -persistence-unit.. 2022. 9. 20. 운영체제 - 1.운영체제와 컴퓨터 보호되어 있는 글 입니다. 2022. 9. 19. 네트워크 - 5.HTTP 보호되어 있는 글 입니다. 2022. 9. 17. 네트워크 - 4.IP주소 보호되어 있는 글 입니다. 2022. 9. 17. 네트워크 - 3.네트워크 기기 보호되어 있는 글 입니다. 2022. 9. 15. 이전 1 ··· 28 29 30 31 32 33 34 ··· 57 다음