728x90 DataBase/JPA40 [JPA] 준영속성 준영속성이란? 영속성 컨텍스트에 있는 객체를 제거하여 JPA가 관리 하지 않도록한다. 준영속성은 commit을 해도 아무 일도 일어 나지 않는다. 준영속성을 만드는 방법 em.detach(entity) 특정 엔티티만 준영속 상태로 전환 em.clear() 영속성 컨텍스트를 완전히 초기화 em.close() 영속성 컨텍스트를 종료 Member member = new Member(150L,"A"); em.persist(member); // 영속성 컨테스트에서 삭제 // 준영속성이 됨. // em.detach(member); // 영속성에 있는걸 통으로 제거한다. em.clear(); 참고 https://www.inflearn.com/course/ORM-JPA-Basic/lecture/21695?tab=cur.. 2021. 7. 30. [JPA] 플러시 플러시란? 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영한다. 특징 영속성 컨텍스트를 비우지 않음 영속성 컨텍스트의 변경내용을 데이터베이스에 동기화 트랜잭션이라는 작업 단위가 중요 -> 커밋 직전에만 동기화 하면 됨 플러시발생 시점 변경감지 수정된 엔티티 쓰기 지연 SQL 저장소 등록시 쓰기지연 SQL 저장소의 쿼리를 데이터 베이스에 전송 - 등록, 수정, 삭제 쿼리시 영속성 컨텍스트를 플러시 하는방법 em.flush(): 수동 호출 EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); Member member = new Member(150L,"A"); // 저장 되진 않는.. 2021. 7. 30. [JPA] 영속성 컨텍스트 영속성 컨텍스트란? 영속성 컨텍스트에 대해 알아본다. 동작을 알아본다. 영속성 컨텍스트 JPA 를 이해하는데 기본이 된다. 논리적인 개념이다. 엔티티를 영구저장하는 환경 EntityManager.persist(entity) - 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다. 엔티티 매니저를 통해 어떻게 접근하고 관리가 될까? 엔티티 매니저 팩토리와 엔티티 EntityManagerFactory 는 웹에서 하나로만 생성하여 사용한다. EntityManager는 사용자의 요청마다 생성해서 사용한다. EntityManager는 내부적으로 DB 커넥션을 사용해 DB와 연결한다. 엔티티의 생명주기 EntityManager가 엔티티를 관리 하는 부분에서 엔티티의 생명주기 또한 중요하다. 비영속(new/transie.. 2021. 7. 30. [JPA] JPA CRUD 기본 JPA 객체 맵핑하는 법을 알아보자. Member Class 생성후 맵핑하기 @Entity: 어노테이션을 선언해 주면 JPA 가 해당 어노테이션을보고 인식한다. @Table: 어노테이션을 이용하여 객체를 저장할 테이블 명을 따로 지정해줄수 있다. - 기본값은 클래스 명이다. @Id 로 PK 를 설정한다. @Column 으로 컬럼 이름을 지정해 줄수 있다. Member Class package hellojpa; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity // 꼭넣어야 한다. // JPA가 로딩 될때 해당 어노테.. 2021. 7. 30. 이전 1 ··· 6 7 8 9 10 다음 728x90 반응형