TIL - 항해99 16일차

스브코·2021년 11월 17일
0
post-custom-banner

3주차 강의 까지 듣고 새로 알게된것

사용자 정의 query method 만드는법(JPA 공식 홈페이지): https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods

사용자 정의 query method를 사용하면 스프링 이런식으로 repository 생성시 정렬을해서 넘길 수 있다.

public interface MemoRepository extends JpaRepository<Memo, Long> {
    List<Memo> findAllByOrderByModifiedAtDesc();
}

@RequiredArgsConstructor - 클래스 안에서 final 멤버 변수 선언시 생성될때 같이 넣어줌

css 선택자(id, class)
  
  #contents { <----- id가 컨텐츠인 것들을 가리킴
  width: 538px
 }
 
 .area {  <----- class가 에리어 인것들을 가리킴
 dfsdfds
 }

project하면서 하게 된 실수 및 해결

  1. timestamped 클래스에 @Getter를 빼먹어서 entity 클래스에서 시간을 못 받아온다. DB에는 또 잘 들어가나 DB에 있는걸 꺼낼때 안 가져와 져서 애를 먹었다.

  2. @RequestParam 사용 시 URL?id=1을 해주었어야했는데 URL?=1이라고 해놔서 계속 bad request가 떠서 애를 먹었다.

  3. application/json에 h2 설정을 안넣어줘서 db가 계속 연결이 안되었다.

  4. modal 사용이 안됨(bootstrap에 있는거 그대로 붙어넣어도 작동을안함)

    이 블로그가 나를 살려줬다. https://m.blog.naver.com/10hsb04/221672312196

  5. @RestController 사용시 상세 페이지로의 전환이 서버쪽에서는 불가능하여 @Controller를 따로 만들어서 modelandview를 넘겨주는 방식으로 했다.

@RestController 방식

    @GetMapping("/api/blogs/{id}")
    public Optional<Blog> getOneBlog(@PathVariable Long id) {
        return blogRepository.findById(id);
    } 

이렇게 하면 데이터만 넘겨주기에 index.html에서 post.html로 넘어갈 방법을 찾을 수가 없었다.

@Controller 방식

    @GetMapping("/api/blogs/detail")
    public ModelAndView getOneBlog(@RequestParam Long id) {

        Blog blog = blogRepository.findById(id).orElseThrow(
                () -> new NullPointerException("")
        );
        ModelAndView mv = new ModelAndView();
        mv.setViewName("post"); // 뷰의 이름
        mv.addObject("data", blog);
        mv.addObject("style", "background-image: url('assets/img/post-bg.jpg')");

        return mv;
    }

modelandview에서 view에 post.html을 넣어서 반환해 주었다. 근데 이러니까 html의 css와 image들이 하나도 적용이 안되네.....

회고

오늘 3주차 개인과제를 배포와 데이터베이스 연결을 제외하고 완료 하였다. 내일부터는 배포 후 thymeleaf와 프로젝트에 PUT, Delete를 넣어서 확장시키거나 4주차 강의를 한번 들어봐야 겠다. 전에 만났던 여러 팀원 분들이 도움을 주셔서 해결할 수 있었던 문제들이 많아서 참 다행이었다. 스프링 부트는 쉬운것 같으면서도 결국 잘하려면 스프링을 알아야 하는것 같다 ㅠㅠ 공부할게 정말 산더미...

                 
profile
익히는 속도가 까먹는 속도를 추월하는 그날까지...
post-custom-banner

0개의 댓글