1. BoardNativeRepository findAll 만들기
public List<Board> findAll(){
Query query = em.createNativeQuery("select * from board_tb order by id desc", Board.class);
return query.getResultList();
}
2. Junit 단위 테스트
package shop.mtcoding.blog.board;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.context.annotation.Import;
import java.util.List;
@Import(BoardNativeRepository.class)
@DataJpaTest
public class BoardNativeRepositoryTest {
@Autowired // DI
private BoardNativeRepository boardNativeRepository;
@Test
public void findAll_test(){
// given
// when
List<Board> boardList = boardNativeRepository.findAll();
// then
System.out.println("findAll_test/size : "+boardList.size());
System.out.println("findAll_test/username : "+boardList.get(2).getUsername());
// org.assertj.core.api
Assertions.assertThat(boardList.size()).isEqualTo(4);
Assertions.assertThat(boardList.get(2).getUsername()).isEqualTo("ssar");
}
}


3. 컨트롤러에서 가방에 담기
@GetMapping("/" )
public String index(HttpServletRequest request) {
List<Board> boardList = boardNativeRepository.findAll();
request.setAttribute("boardList", boardList);
return "index";
}
4. 게시글 목록보기 뷰 렌더링
{{> /layout/header}}
<div class="container p-5">
{{#boardList}}
<div class="card mb-3">
<div class="card-body">
<h4 class="card-title mb-3">{{title}}</h4>
<a href="/board/{{id}}" class="btn btn-primary">상세보기</a>
</div>
</div>
{{/boardList}}
<ul class="pagination d-flex justify-content-center">
<li class="page-item disabled"><a class="page-link" href="#">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">Next</a></li>
</ul>
</div>
{{> /layout/footer}}
5. 게시글 목록보기에 시간 출력하기

implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
package shop.mtcoding.blog.util;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.sql.Timestamp;
import java.util.Date;
public class MyDateUtil {
public static String timestampFormat(Timestamp time){
Date currentDate = new Date(time.getTime());
return DateFormatUtils.format(currentDate, "yyyy-MM-dd HH:mm");
}
}