[JPA & Hibernate] Entity Manager

원알렉스·2020년 8월 10일
0

JPA

목록 보기
2/16
post-thumbnail

깃허브 소스코드
Udemy 강의영상

@Transactional

  • org.springframework.transaction.annotation.Transactional
  • 해당 메소드를 트랜잭션 내에 실행
  • 오류 발생시 롤백

@DirtiesContext

  • 테스트 실행시 수정 된 데이터를 원상 복귀 시킴

EntityManager

  • 현재 실행 중인 트랜잭션 내의 모든 엔티티를 트래킹
  • 이로 인해 엔티티 수정 시 자동으로 쿼리 실행
public void playWithEntityManager() {
    logger.info("Play with Entity Manager Start................");

    Course course = Course.builder().name("NEW COURSE").build();
    entityManager.persist(course);  // save
    course.setName("UPDATE COURSE");  // update
}

그 외 함수

  • entityManager.flush()

    • 현재 Entity Manager가 트래킹 중인 엔티티들을 데이터베이스에 반영
  • entityManager.detach(Object o)

    • 해당 엔티티에 대한 트래킹 제거
  • entityManager.clear()

    • 모든 엔티티에 대한 트래킹 제거
  • entityManager.refresh(Object o)

    • 해당 엔티티에 대한 변경 사항 초기화
profile
Alex's Develog 🤔

0개의 댓글