• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

준영속과 테이블 저장 궁금증

22.02.24 14:11 작성 조회수 27

0

영속에서 준영속이 되는 시점이 언제인지 궁금합니다.

제가 보기에는 영속객체에 대한 레퍼런스를 잃는 시점(해당 영속객체를 활용하는 함수가 return 했다던지..)에 준영속이 되는거 같은데 맞나요? 만약 아니라면 알고 싶습니다.

또한 실습을 할때 프로젝트를 실행해서 서버를 키고 제가 회원을 등록한다던지 상품을 등록한다던지 하면 h2 db에 확실하게 반영이되는데 서버를 끔과 동시에 db가 사라집니다. test가 아닌 일반적인 프로젝트 실행해서 그러는데 이것이 정상인건가요?  

답변 1

답변을 작성해보세요.

2

David님의 프로필

David

22.02.24 14:24

안녕하세요. 송영우님, 공식 서포터즈 David입니다.

1. 스프링은 기본적으로 트랜잭션 범위의 영속성 컨텍스트 전략을 사용하고 있습니다. 트랜잭션이 종료되면 영속성 컨텍스트 또한 종료되며 이때 영속 상태였던 객체들은 준영속으로 상태가 변경됩니다.

자세한 사항은 JPA 강의 를 참고해주세요.

2. H2 DB는 메모리 모드를 지원합니다. 만약 메모리 모드를 사용 중이시라면 웹 애플리케이션 종료시 H2 DB 내 데이터도 초기화됩니다.

감사합니다.