Embedded Type Test 문제와 H2 GenerationType 문제
1. Embedded Type Test 오류
개인 프로젝트를 시작 한 날, jpa테스트를 돌리는 도중 위와 같은 오류를 만났다.
오류의 원인을 구글링 해보니, embedded type으로 테스트를 해주는데 값을 입력안해주면 jpa 오류가 발생한다는 것이었다. 이것을 해결하기 위해서 임의의 Address 객체를 new
를 이용하여 테스트를 하였더니 테스트가 성공했다. not null이라는 조건을 안달아도 오류남으로 다음부터 테스트 할 때 참고해야겠다.
2. H2 GenerationType 문제
위의 오류를 해결하고 다른 테스트를 해보려고 하니
이 오류가 발생했다.(
스프링이 말대꾸?
)
이 문제는 해결하는데 진짜 오래걸렸다. 간단하게 짜인 코드가(대부분 스프링 제공 인터페이스) 대부분인데 SQL오류라니.. 정말 난감했다.
아래로 내려가면서 오류 내용을 확인해 보았다.
id 문제인것 같아서, 몇시간 동안 삽질한 결과 답을 찾았다. 이 글을 참조해보면 해결방법이 잘나와 잇는데 GenerationType.IDENTITY 전략이 h2 2.0이상 버전을 하이버네이트 orm이 지원을 안해서 발생하는 문제로, application 설정파일에 url 뒤에 ;MODE=LEGACY
를 붙여주면 해결된다.
※ 참고
'개발 > [오류]' 카테고리의 다른 글
CORS와 스프링에서의 해결법 (0) | 2023.05.28 |
---|---|
Redirect URL에 쿼리 파라미터가 생기는 경우 (0) | 2022.04.14 |
ModelAttribute 관련 오류 (0) | 2022.03.23 |
테스트 데이터 격리 (0) | 2022.03.18 |
Oauth와 SpringBoot (0) | 2022.02.04 |