findById는 Optional객체를 리턴한다
책 삭제 Test를 실행하면 오류없이 되지만 전체 실행하면 오류가 난다.
JUnit은 테스트 메소드를 순서보장이 안된다.
순서 보장을 하려면 @Order를 사용해야 한다.
테스트 메서드가 하나 실행 후 종료되면 데이터가 초기화 된다.
1건 -> 2건->트랜잭션 종료 ->데이터 초기화
***primary key auto_increment 값이 초기화가 안됨!!
해결방법
//느려지는 단점이있다!!
@Autowired
private EntityManager em;
@BeforeEach
public void db_init(){
bookRepository.deleteAll();
em
.createNativeQuery("ALTER TABLE book ALTER COLUMN id RESTART WITH 1")
.executeUpdate();
}
//보통은 이 방법을 쓴다!!
@Sql("classpath:db/tableInit.sql")
// id(increment)를 불러오는 메서드 위에 작성한다.