본문 바로가기

Trouble-Shooting

Error createing bean with name 'entitymanagerfactory' 해결하기 (H2 동시 접속)

728x90

회원가입 기능 테스트로 회원가입 시 사용자가 작성한 정보들이 DB에 제대로 저장되었는지

DB에 저장된 Member 객체를 가져와 검증하는 테스트를 진행하는데 계속해서

 

[Spring Error] Error createing bean with name 'entitymanagerfactory' 에러가 났다.

 

application.properties 설정이 잘못된건지 코드를 잘못 작성한 것이 있는지 아무리 검토해보아도

원인을 찾을 수 없었고 이상하게도 간헐적으로 테스트가 통과되었었다.

 

다른 블로그에서는 @Id, @GeneratedValue 의 import가 잘못되어 이를 Javax로 바꾸어주는것,

Javassist ? 를 추가해줌으로써 해결했다고 하는데 나는 이미 Javax.persistance ... 에서 import 하고 있었고

뭔가 다른것이 원인인 것 같았다.

 

결론적으로 원인은 datasource URL을 TCP모드로 작성해주지 않아 H2 Database에 동시 접속이 안되었던 것이었다.

간헐적으로 테스트가 통과된 것은 내가 H2 DB연결을 끊었었을 때였다.

H2 DB를 연결하고 테스트코드를 실행하면 역시나 위의 에러가 발생했다.

 

따라서 H2 동시접속을 위해 다음과 같이 TCP모드로 URL을 수정해주었고 에러를 해결할 수 있었다.

 

[전]

spring.datasource.url=jdbc:h2:~/projectdb

 

[후]

spring.datasource.url=jdbc:h2:tcp://localhost/~/projectdb

 

 

이제 테스트 코드가 제대로 실행되고 테스트 통과도 된다!!

728x90
반응형

'Trouble-Shooting' 카테고리의 다른 글

JAVA - JSON(String) to JSON : JSONObject  (1) 2024.04.22