티스토리 뷰

백엔드

스프링 활용 - 환경 설정

ji._.ye 2023. 9. 11. 09:24

@PersistenceContext

  • 영속성 컨텍스트: 엔티티를 영구 저장하는 환경
  • 스프링에는 영속성 관리를 위해 EntityManager존재
  • EntityManager를 빈으로 주입할 때 사용
  • EntityManager는 영속성 컨텍스트에 엔티티를 보관하고 관리
//MemberRepository

@Repository
public class MemberRepository {
    @PersistenceContext
    private EntityManager em;
    public  Long save(Member member){
        em.persist(member);
        return member.getId();
    }

    public Member find(Long id){
        return em.find(Member.class, id);
    }//같은 영속성 context 안에서는 ID가 동일하면 같은 Entity로 식별

}

 

@Transactional

  • 오류가 발생했을 때 모든 작업을 원상태로 되돌릴 수 있음
  • 데이터 추가, 갱신, 삭제 등으로 이루어진 작업에 오류가 발생했을 때 모든 작업들을 원상태로 되돌림
  • DB와 관련된 클래스, 메서드에 어노테이션 적용
  • 테스트 메서드에 어노테이션을 적용하면 메서즈가 종료될 때 자동으로 롤백

@RollBack(false)

  • 테스트 코드에서 데이터를 유지
//MemberRepositoryTest
...
 @Test
    @Transactional
    @Rollback(false)
    public void testMember() throws Exception{
        //given
        Member member = new Member();
        member.setUsername("memberA");

        //when
        Long saveId = memberRepository.save(member);
        Member findMember = memberRepository.find(saveId);
...

 

 

'백엔드' 카테고리의 다른 글

NCP 사용 후기  (2) 2023.08.10
스프링 핵심 원리 이해2 - 비즈니스 요구사항과 설계  (0) 2023.05.20
MVC  (0) 2023.04.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함