책 기록 정보를 클라이언트에 보내주는 책 기록 응답 DTO 객체를 만들겠습니다. 책 기록 응답 객체는 단독으로 사용되는 것은 아니고 책 정보 객체 BookReadResponseDTO의 하위 정보로 쓰여집니다.com.yse.dev.book.dto 패키지에 BookLogReadResponseDTO 클래스를 생성합니다.src/main/java > com.yse.dev.book.dto > BookLogReadResponseDTO.javapackage com.yse.dev.book.dto; import java.time.LocalDateTime; import com.yse.dev.book.entity.BookLog; import lombok.Getter; import lombok.NoArgsConstruc..
JPA에서는 데이터베이스 테이블간의 관계를 나타낼 때 한쪽이 다른쪽만 참조하는 단방향 관계와, 양쪽 다 서로 참조하는 양방향 관계가 있습니다. 우리는 이제까지 BookLog 에서 Book을 참조하는 단방향 관계(Book BookLog)로 개발을 진행해 왔었습니다.하지만 책 정보 조회시 책 기록 조회를 함께 하게 되면서 서로 참조할 필요성이 생겼습니다 (Book BookLog). 기존에 BookLog에서 책 기록을 입력할 때 Book을 참고했었던 단방향 관계에서, 책 정보를 조회할 때 책 기록도 함께 조회하는 양방향 관계가 된 겁니다.RDBMS에서는 무조건 참조하는 쪽에서만 참조가 될 부모행의 ID를 가지고 있었기 때문에 아무런 문제가 없었습니다만, JPA는 ORM이기 때문에 각자 객체에 상대방의 정보..
지금까지 만든 기능으로는 책 기록을 입력하는 기능까지는 추가했지만 책 상세 화면에 바로 접속했을 때 책 기록이 바로 보여지지는 않습니다.책 상세 화면에 책 기록이 바로 보여지도록 바꿔보겠습니다.
책 상세 화면을 조금 수정해서 책 기록을 저장하는 기능을 추가해 보겠습니다.목록으로 가는 버튼 아래에 하단의 코드를 추가합니다.src/main/resources > templates.book > read.html 다시 서버를 실행하고 http://localhost:8080/book/read/5 에 접속해 보세요. 그리고 책 기록 내용을 입력하고 저장해 보세요.
뷰에 기능을 넣기 전에 기능이 잘 만들어졌는지부터 확인해 보겠습니다.사용하시는 브라우저의 확장 기능에서 rest client라는 단어로 검색을 해 주세요. 예를 들어 파이어폭스를 사용하신다면 https://addons.mozilla.org/ko/firefox/search/?q=rest%20client&sort=users 에서, 크롬을 사용하신다면 https://chrome.google.com/webstore/search/rest%20client?hl=ko에서 검색하시고 설치해 주세요.확장기능을 실행시킨 후, 그림과 같이 입력하고 실행해 주세요.HTTP METHOD : POSTURL : http://localhost:8080/book-log/createContent-Type (Headers에 위치합니다.)..
http://localhost:8080/book-log/create 주소에 bookId, comment, page JSON 데이터를 보내면 bookLogId, bookId, comment, page JSON 데이터를 응답하는 컨트롤러 메소드를 만들어보겠습니다. com.yse.dev.book.controller 패키지 아래에 BookLogController 컨트롤러를 생성합니다.src/main/java > com.yse.dev.book.controller > BookLogController.java@RestController @RequestMapping("/book-log") public class BookLogController { private BookLogService bookLo..