1. TransactionRequiredException
Repository의 save 매서드에 @Transactional 을 안 붙였더니

TransactionRequiredException 에러 발생

—> Write 에 해당하는 매서드 위에는 @Transactional 을 써주자 !
2. No method or field with name

list.mustache
반복문 안에 {{}} 로 다 수정하고 실행시켰는데,

title 필드를 찾을 수 없다고 뜸

Repository의 쿼리 뒷 부분에 Board.class 가 없어서 발생한 에러

조회 매서드는 쿼리 뒤에 이렇게 class를 명시해주어야 에러가 안난다.

테스트에서 size로 확인을 했을 때는 에러가 안났다.

list에 getTitle 로 확인하니 데이터가 ClassCastException 이 발생.
Board 타입으로 잘 넘어온게 아니라는 것을 확인할 수 잇다.
3 삭제 매서드 테스트 할 때

delete 하고 조회(findById) 해서 NoResultExcetion 인 걸 확인한다.
일부러 에러를 발생시켜서 테스트 하는 것.
4. 테이블 create 이전에 insert 가 되었을 때

dummy 데이터를 만들고 application.properties에 이렇게 설정해주고 실행시키면
h2 데이터베이스에 더미데이터가 안들어간다.

위 에러가 발생하는데

구체적으로 이런내용이다.
이때는

하이버네이트에 defer-datasource-initialization 설정을 추가해 주어야 한다.
이렇게 해야 table 이 created 되고 나서 더미 데이터 insert 가 실행된다.
5. View 에 데이터가 안 나올때
mustache

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