
insert와 update,findBy~를 구성해준다.Optional로, Category는 해당 카테고리에 대한 제품을 다건으로 검색하는 메서드니 List로 구성한다. delete 기능을 갖는 메서드까지, 메서드 7개를 정의해준다.
NamedParameterJdbcTemplate을 이용해주자.
findAll()을 만들어준다.productRowMapper를 사용하고, 이를 정의해주자.productRowMapper을 사용하기 위해 메서드를 정의해준다. 

Category.valueOr( )를 사용한다.getLong( )getTimeStamp( )를 로컬데이터로 변환하면서 null 처리를 해야하고, LocalDateTime으로 변환해주는 메서드를 하나 만들어준다.
timestamp != null ? timestamp.toLocalDateTime()
toUUID와 toLocalDateTime를 따로 정의했는데, 같은 곳에 두는 것보다는 다른 클래스를 생성해 자리를 옮겨주고 주입받게 만들자. 

NamedParameter로 전달해주기 위해서 UUID_TO_BIN을 사용한다.

paramMap을 정의.
SpringBootTest 어노테이션을 붙이면 알아서 스프링부트 애플리케이션을 찾아 세팅해줌.
pom.xml에 가서 embedded DB설정을 해준다.
TestMethodOrder( )로 순서를 보장해준다.
ProductRepository를 오토와이어링 해주고, newProduct를 새로운 필드로 생성해준다. 
resources 디렉토리를 만들고 application-test.yaml 파일을 생성해준다.


start 와 stop에서 오류가 발생한다. (UNHEX(REPLACE(:productId, '-', '')




findById findByName findByCategory를 구현하자.try-catch문을 기본적으로 사용해준다..toString()을 사용해 스트링으로 바꿔서 전달해준다.

static으로 주어야한다. static으로 해주어야 new Product가 매번 새로 생성되지 않는다.
TestInstance를 PER_CLASS로 바꿔주어야 한다.
