[Springboot] blog v1 작성 중 발생한 에러 정리

김호정's avatar
Aug 20, 2024
[Springboot] blog v1 작성 중 발생한 에러 정리
 

1. TransactionRequiredException

Repository의 save 매서드에 @Transactional 을 안 붙였더니
 
notion image
 
TransactionRequiredException 에러 발생
notion image
 
—> Write 에 해당하는 매서드 위에는 @Transactional 을 써주자 !
 
 

2. No method or field with name

notion image
list.mustache
 
반복문 안에 {{}} 로 다 수정하고 실행시켰는데,
 
notion image
title 필드를 찾을 수 없다고 뜸
 
notion image
Repository의 쿼리 뒷 부분에 Board.class 가 없어서 발생한 에러
 
notion image
조회 매서드는 쿼리 뒤에 이렇게 class를 명시해주어야 에러가 안난다.
 
 
notion image
테스트에서 size로 확인을 했을 때는 에러가 안났다.
 
notion image
list에 getTitle 로 확인하니 데이터가 ClassCastException 이 발생.
Board 타입으로 잘 넘어온게 아니라는 것을 확인할 수 잇다.
 

3 삭제 매서드 테스트 할 때

 
notion image
 
delete 하고 조회(findById) 해서 NoResultExcetion 인 걸 확인한다.
일부러 에러를 발생시켜서 테스트 하는 것.
 

4. 테이블 create 이전에 insert 가 되었을 때

 
notion image
dummy 데이터를 만들고 application.properties에 이렇게 설정해주고 실행시키면
h2 데이터베이스에 더미데이터가 안들어간다.
 
notion image
위 에러가 발생하는데
 
notion image
구체적으로 이런내용이다.
 
이때는
 
notion image
 
하이버네이트에 defer-datasource-initialization 설정을 추가해 주어야 한다.
이렇게 해야 table 이 created 되고 나서 더미 데이터 insert 가 실행된다.
 

5. View 에 데이터가 안 나올때

 
mustache
 
notion image
 
mustache 에서 반복문과 session을
사용하려면 application.properties 에 위 설정을 추가해주어야한다.
 
그리고 다시 실행해보면 반복문 안의 그 request 객체에서 꺼낸 데이터가 잘 나올것.
 
Share article

keepgoing