728x90 반응형 ORM7 [JPA] 연관 관계 매핑 ( 양방향 ) 해당 내용은 이영한님의 자바 ORM표준 JPA프로그래밍 책을 공부하면서 가볍게 정리한 내용입니다. 책과 영상으로 공부하면서 현업에서 너무 잘 사용하고 있어서 복습할겸 이렇게 정리하게되었습니다. 꼭 영상과 도서로 보시길 바랍니다. 전에 포스팅했던 연관 관계 매핑 (단방향)편을 보면 당연히 단방향이 있다면 양방향도 있다는것을 추측할 수 있을 것입니다. 이번 포스팅은 양방향 연관관계에 대해 알아보도록 하겠습니다. 기존에 소스는 Member -> Team 으로만 단방향 매핑을 하였기 때문에 Member만이 Team을 알 수 있었습니다. 하지만 양방향으로 설정하기 위해서는 Team -> Member로도 알수 있어야 하기 때문에 Team.class에 Member에대해 알수있도록 매핑해주도록 하겠습니다. // Tea.. 2021. 2. 4. [JPA] 플러시 ( flush ) 플러시 (flush) 이번에는 JPA 에서 flush가 무엇인지에 대한 내용에 대해 포스팅하고자 한다. flush는 영속성 컨텍스트의 변경된 내용을 데이터베이스에 반영하기 위해 사용한다. 플러시(flush)를 실행하면 다음과 같은 일이 일어난다. JPA의 변경 감지가 동작하여 영속성 컨텍스트에 있는 모든 Entity를 스냅샷과 비교하여 변경된 Entity를 찾는다. 수정된 Entity는 수정 쿼리를 만들어서 쓰기 지연소에 저장한다. 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송한다. ( 등록, 수정, 삭제 ) 위의 두가지 방법으로 flush가 동작합니다. 그렇다면 flush를 하는 방법은 어떤것들이 있을까?? *■ 직접 호출 * EntityManager의 flush()메서드를 직접 호출하여 강제로.. 2020. 12. 22. [JPA] 영속성 컨텍스트의 특징 및 기본 구조 :) 영속성 컨텍스트의 특징 영속성 컨텍스트와 식별자 값 @Id 어노테이션으로 테이블의 기본키와 매핑된 값으로 구분한다. 따라서 영속 상태의 엔티티에서는 식별자 값이 필수이다. 만약 영속 상태에서 식별자 값이 없으면 예외가 발생한다. 영속성 컨텍스트와 데이터 베이스 저장 JPA 에서는 대게 트랜잭션이 끝나는(commit) 순간 데이터베이스에 영속성 컨텍스트에 있는 내용을 반영하는데 다음과 같은 과정을 flush라고 한다 영속성 컨텍스트가 엔티티를 관리하게 되었을때 얻을 수 있는 장점. 1차캐시, 동일설 보장, 트랜잭션을 지원하는 쓰기 지연, 변경 감지, 지연로딩 :) 엔티티 등록 영속성 컨텍스트에는 내부 캐시를 가지고 있을 수 있는 공간이 있는데 이것을 1차 캐시라고 부른다. 영속상태인 모든 엔티티는 모.. 2020. 12. 20. [JPA] JPA 영속성 및 상태 이번 공부한 내용 정리에는 JPA를 통해 EntityManager를 사용하여 데이터를 CRUD하는 작업에 대해 알아봤는데 내부적으로 EntityManager가 어떻게 돌아가는지 확인해보겠습니다 :) EntityManagerFactory와 EntityManager EntitymanagerFactory는 데이터베이스를 하나만 사용하는 Application에서는 하나만 생성된다. EntityManagerFactory를 생성하는 방법은 다음과 같았다. // name - persistence.xml의 persistence-unit name을 의미함 EntityManagerFactory emf = Persistenct.createEntityManagerFactory(name); EntityManagerFactory.. 2020. 12. 20. 이전 1 2 다음 728x90 반응형