반응형
Springboot 공부중 에러를 정리한 내용
에러상황
Spring boot Test를 위해서 Test용 application.properties를 만들어서 테스트 진행
application.properties에 입력된 내용
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.h2.console.enabled=true
spring.session.store-type=jdbc
H2데이터베이스는 H2 문법을 사용하기 때문에 MySQL문법으로 바꿔주는 것을 알려주어야한다.
그 부분이 dialect 설정하는 부분이다. 이부분까지만 설정하면 될 줄 알았다.
하지만 table을 만드는데 에러가 발생하였다.
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table <...>
원인
H2데이터베이스를 제대로 바라보게 설정 또한 주어야했다.
spring.datasource.url=jdbc:h2:mem:testdb;MODE=MySQL
jdbc:h2:mem:testdb 까지만 입력해서 Test를 진행하여도 에러가 발생하였다.
Mode가 MySQL이라는 것 까지 명시해줘야 제대로 동작하는 것을 알게 되었다.
그리고 검색 중 jdbc:h2:mem:testdb와 jdbc:h2:~/testdb의 차이를 알게되었다.
- jdbc:h2:mem:testdb
In-memory DB.어플리케이션이 동작할 때에만 존재하는 DB로 DB를 연결하고 닫으면 해당 DB는 사라진다. - jdbc:h2:~/testdb
Local DB. 로컬에서 홈디렉토리에 db를 생성되어 사용된다. 해당 DB는 저장되어 계속 사용할 수 있다.
참고
https://velog.io/@jeong-god/Springboot-Test-H2-DB설정
반응형
'프레임워크 > Spring Boot' 카테고리의 다른 글
[SpringBoot] Error. Field 'id' doesn't have a default value (0) | 2023.02.07 |
---|---|
[Spring Batch] spring batch 기본 구성요소 (0) | 2022.12.30 |
[Spring Batch] ItemReader, Jsoup을 이용하여 네이버 증권 데이터 크롤링 (1) (0) | 2022.12.28 |
[spring batch] Batch란? (0) | 2022.12.28 |
[Spring Batch] itemReader, processor, Write 사용방법 (0) | 2022.11.07 |
댓글