Springboot

    [Springboot] 블로그 만들기 (41)_ 댓글 삭제

    detail.jsp 댓글 리스트 ${ reply.content } 작성자 : ${ reply.user.userName } 삭제 board.js let index = { init: function() { } , replyDelete: function(boardId, replyId) { $.ajax({ type: "DELETE", url: `/api/board/${boardId}/reply/${replyId}`, dataType: "json" }).done(function(resp) { alert("댓글 삭제가 완료되었습니다."); location.href = `/board/${boardId}`; }).fail(function(error) { alert(JSON.stringify(error)); }); } ..

    [Springboot] 블로그 만들기 (40)_ 회원가입, 게시글 삭제 문제 해결

    문제점 : 회원가입시에 중복아이디에 대해서 회원가입이 되는것처럼 동작한다. 하지만 실제로 DB에는 반영이 안된다. GlobalExceptionHandler 회원가입완료 버튼을 눌러서 오류가 발생하게 되면 GlobalExceptionHandler를 타게 된다. 그리고 500을 반환한다. --> 500을 응답했을 경우에 대해서 분기처리를 하면 된다. @ControllerAdvice // 어느파일에서나 Exception이 발생해도 이 함수를 타게 하기 위한 어노테이션 @RestController public class GlobalExceptionHandler { @ExceptionHandler(value=Exception.class) public ResponseDto handleArgumentException..

    [Springboot] DI(Dependency Injection) 3가지 방법

    방법 1 기본원리 @Service public class BoardService { public BoardService(BoardRepository bRepo, ReplyRepository rRepo) { this.boardRepository = bRepo; this.replyRepository = rRepo; } } 방법 2 @AutoWired 사용 @Service public class BoardService { @Autowired private UserRepository userRepository; @Autowired private BoardRepository boardRepository; @Autowired private ReplyRepository replyRepository; } 방법 3 @r..

    [Springboot] 블로그 만들기 (39)_댓글 작성하기 (네이티브 쿼리 사용)

    BoardApiController @PostMapping("/api/board/{boardId}/reply") public ResponseDto replySave(@RequestBody ReplySaveRequestDto replySaveRequestDto) { boardService.댓글쓰기(replySaveRequestDto); return new ResponseDto(HttpStatus.OK.value(), 1); } BoardService @Transactional public void 댓글쓰기(ReplySaveRequestDto replySaveRequestDto) { replyRepository.mSave(replySaveRequestDto.getUserId(), replySaveRequest..

    [Springboot] 블로그 만들기 (38)_댓글 작성하기 (Dto사용)

    ReplySaveRequestDto.java @Data @AllArgsConstructor @NoArgsConstructor public class ReplySaveRequestDto { private int userId; private int boardId; private String content; } detail.jsp 등록 BoardApiController.java @PostMapping("/api/board/{boardId}/reply") public ResponseDto replySave(@RequestBody ReplySaveRequestDto replySaveRequestDto) { boardService.댓글쓰기(replySaveRequestDto); return new ResponseD..

    [Springboot] 블로그 만들기 (37)_댓글 작성하기

    지금은 댓글이 잘 정렬돼서 나오고 있지만 댓글의 순서를 바꾸고 싶다면 @OrderBy 어노테이션을 사용하면 된다. @JsonIgnoreProperties({"board"}) @OneToMany(mappedBy = "board", fetch = FetchType.EAGER) @OrderBy("id asc") // id를 기준으로 오름차순, 안쓰면 default는 오름차순 (내림차순 정렬은 desc) private List replys; detail.jsp 등록 board.js let index = { init: function() { $("#btn-reply-save").on("click", () => { this.replySave(); }); } , replySave: function() { let da..

    [Springboot] 블로그 만들기 (36)_무한참조 방지하기

    Board.java @Data @NoArgsConstructor @AllArgsConstructor @Builder @Entity public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // auto_increment private int id; @Column(nullable = false, length = 100) private String title; @Lob private String content; private int count; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name="userId") private User user; @OneToMany(mappedBy = ..

    [Springboot] 블로그 만들기 (35)_댓글 디자인, 불러오기

    detail.jsp 돌아가기 수정 삭제 글 번호 : ${board.id } 작성자 : ${board.user.userName } ${ board.title } ${board.content } 등록 댓글 리스트 댓글 내용입니다!! 작성자 : lwj 삭제 샘플 DB만들기 insert into reply(content, boardId, userId, createDate) values('첫번째 댓글', 1, 2, now()); insert into reply(content, boardId, userId, createDate) values('두번째 댓글', 1, 2, now()); insert into reply(content, boardId, userId, createDate) values('세번째 댓글', 1..