[토비의 스프링부트] @PostConstruct로 테이블을 생성하지 못합니다. - 인프런 (inflearn.com) 에 대한 생각

박상준·2024년 6월 30일
0
  • 토비의 스프링부트에서 히카리 CP 를 사용하냐 SimpleDataSource 를 사용하냐에 따른
  • @PostConstruct 이후의 오류에 대한 고민

내 개인적인 문제 이유에 대한 생각

@postContruct 에서 별도 create 쿼리가 수행된 이후에 커넥션을 닫아서 h2의 인메모리 모드에서 데이터베이스가 초기화되어서 그런것 같습니다.
이후 update 나 insert 를 수행할때는 SimpleDataSource 에서는 다시 커넥션을 연결을 시도하겠지만, 결국 인메모리 모드 h2 상에서는 create 한 테이블이 없기에.. 그런 것 같습니다.
Hikari cp 같은 경우에는 최소한의 idle Connection 을 유지하기에 h2 는 계속적으로 연결이 되어 있다고 생각하여, create 이후에도 별도의 초기화 과정이 수행되지 않는 것 같습니다.

  • Hikari cp 는 db에 최소한의 연결을 수행한다.
    • 하지만 SImpleDataSource 같은 경우 하나의 트랜잭션(?) 마다 db 연결을 시도하기에 h2 인메모리 db 의 동작시에 여럿 문제가 발생함.

토비님의 답변

https://www.inflearn.com/questions/783993/postconstruct%EB%A1%9C-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84-%EC%83%9D%EC%84%B1%ED%95%98%EC%A7%80-%EB%AA%BB%ED%95%A9%EB%8B%88%EB%8B%A4

profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글