JPA9 [JPA] 준영속 엔티티를 변경하는 방법 - 변경 감지 / 병합(Merge) * 인프런 김영한님 강의와 책을 보고 정리한 내용입니다 준영속 엔티티 Persistence context가 관리하지 않는 엔티티 영속성 컨텍스트가 제공하는 기능(1차 캐시, 쓰기 지연, 변경 감지, 지연 로딩 등)을 사용할 수 없는 엔티티 영속성 컨텍스트의 관리를 한번 받았으므로 identifier는 가지고 있음 영속 엔티티를 준영속 엔티티로 만드는 방법 em.detach() : 영속성 컨텍스트 안의 1차 cache, 쓰기 지연 SQL 저장소에서의 해당 엔티티 정보 제거 em.clear() : 영속성 컨텍스트 안에 있는 모든 정보를 초기화 em.close() : 영속성 컨텍스트 종료 즉, 준영속 엔티티 member가 존재한다고 가정했을 때, member.setName("stody"); 영속 엔티티라면 D.. 2022. 2. 15. Spring Boot Repository EntityManager / EntityManagerFactory 엔티티매니저 / 엔티티매니저팩토리 JPA를 시작하기 위해서는 엔티티 매니저 팩토리를 생성 후 앤티티 매니저 팩토리가 엔티티 매니저를 생성하여야 한다 앤티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("test") application.yml의 환경설정 정보를 가지고 entityManagerFactory를 생성 (통상적으로 META_INF/persistence.xml에서 persistence-unit 이름이 test와 같은 것을 찾아서 생성) JPA 동작 위한 기반 객체 생성 and 데이터베이스 커넥션 풀을 생성 -> 작업과 비용이 크므로 어플리케이션 전체에서 한번만 생성하는 것이 좋음 엔티티 매니저 생성 EntityManager em = emm.. 2021. 12. 27. spring JPA 엔티티 Entity 어노테이션 정리 @ManyToOne 1:다 관계의 엔티티에서 다쪽 엔티티에 설치되는 필드의 어노테이션 DB 테이블 적으로 보면 외래키를 가지고 있으므로 JoinColumn 또한 해주어야 함 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id") // 외래키 이름 private Product product; @OneToMany 1:다 관계의 엔티티에서 1쪽 엔티티에 설치되는 필드의 어노테이션 mapped by를 통해 다쪽의 엔티티에서 어떠한 값과 매핑이 되는지 표시 @OneToMany(fetch = FetchType.LAZY, mappedBy = "product") private List orders = new ArrayList(); @Embeddable .. 2021. 12. 24. [JPA] JPA 세팅 및 MySQL 8 아마존 RDS 연결하기 by Spring Boot build.gradle 에 JPA / MySQL 의존성 세팅하기 방법은 여러가지가 있겠지만 내가 시도한 방법은 두가지다 > Spring Boot Initializer로 작업 환경 만들 때 추가하기 https://start.spring.io/ 이곳에서 웹을 통해서 스프링 프로젝트 생성이 가능한데 이때, jpa를 추가한다 > Maven Repository에서 가져와 추가하기 https://mvnrepository.com/ 에서 스프링에 필요한 라이브러리들을 가져와 추가할 수 있다. JPA도 여기서 검색하면 나온다. build.gradle 파일에서 mavenCentral()이라고 쓰여있는 부분이 JPA 상세 코드 혹은 패키지가 존재하는 사이트 서버와의 인터페이스 (통로) 역할을 하는 메서드가 아닐까 싶다 re.. 2021. 9. 10. 이전 1 2 3 다음