• 티스토리 홈
  • 프로필사진
    Song hyun
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Song hyun
  • 프로필사진
    Song hyun
    • 분류 전체보기 (780)
      • 백준 (0)
      • 영어 (2)
        • Diary (0)
        • Toast Masters (2)
      • 메모 (13)
      • 설치 메뉴얼 (30)
      • Java (178)
      • MySQL (60)
      • JSP (67)
      • Springboot (46)
      • HTML,CSS, JS (71)
        • HTML (8)
        • CSS (12)
        • JavaScript (37)
        • HTML&CSS 스터디 (13)
      • C++ (7)
      • Linux (7)
      • JPA (34)
      • Kotlin (2)
      • Flutter (42)
      • Error Note (39)
      • 디자인 패턴 (12)
      • 디지털논리회로 (4)
      • 데이터베이스 시스템 (8)
      • 알고리즘 (7)
      • 운영체제 (3)
      • 이산수학 (3)
      • 인공지능 (1)
      • 자료 구조 (14)
        • 기본 개념 (14)
        • 자료구조 스터디 (0)
      • 💡My project (76)
        • 팩맨 : Java Swing 게임 제작 프로젝트 (6)
        • 네이트톡 : Java 소켓 통신 프로젝트 (4)
        • 포켓옥션 : HikariCP&JDBC CRUD 프.. (3)
        • 이지 부산 : BDIA-Devton 2024 프로.. (20)
        • 그린 유니버시티 : JSP를 사용한 학사관리 프로.. (1)
        • 애드 포커 : 웹 소켓과 Spring을 사용한 카.. (1)
        • 셸위 : 게임 친구 매칭 사이트 (21)
        • 다모아 : 개발자 중개 플랫폼 (20)
      • 📗스터디 (13)
        • CNN : 웹개발 스터디 (10)
        • Node&React로 유튜브 사이트 만들기 (3)
      • 📙독서 및 강연 기록 (36)
        • 강연 (14)
        • 독서 (22)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [JPA] 28. 댓글 쓰기 및 삭제 및 인터셉터 적용
        2024년 10월 17일
        • Song hyun
        • 작성자
        • 2024.10.17.:28
        728x90
        반응형

        [JPA] 28. 댓글 쓰기 및 삭제 및 인터셉터 적용

         

        *정방향 인서트: JPA에서 엔티티간의 연관 관계를 설정할 때, 연관 관계의 주인(owner) 엔티티를 통해 데이터를 저장하는 것을 의미한다. 이는 양방향 매핑에서 특히 중요하며, 연관 관계의 주인 측에서 데이터를 추가하고, 저장해야 연관관계가 올바르게 매핑된다.

         

         

        1. 댓글 등록 화면 코드 수정

            <!-- 댓글 -->
            <div class="card mt-3">
                <!-- 댓글등록 -->
                <div class="card-body">
                    <form action="/reply/save" method="post">
                        <input type="hidden" name="boardId" value="{{board.id}}">
                        <textarea class="form-control" rows="2" name="comment"></textarea>
                        <div class="d-flex justify-content-end">
                            <button type="submit" class="btn btn-outline-primary mt-1">댓글등록</button>
                        </div>
                    </form>
                </div>

         

        2. ReplyDTO.java

        package com.tenco.blog_v2.reply;
        
        import com.tenco.blog_v2.board.Board;
        import com.tenco.blog_v2.user.User;
        
        public class ReplyDTO {
        
            public static class SaveDTO {
                private Integer boardId;
                private String comment;
        
                // DTO --> JPA 영속성 컨텍스트로 저장 한다.. 엔티티로 변환 해야 한다.
                public Reply toEntity(User sessionUser, Board board) {
                    return Reply.builder()
                            .comment(comment)
                            .board(board)
                            .user(sessionUser)
                            .build();
                }
        
            }
        }

         

        3. ReplyJPARepository

        package com.tenco.blog_v2.reply;
        
        import org.springframework.data.jpa.repository.JpaRepository;
        import org.springframework.data.jpa.repository.Query;
        import org.springframework.data.repository.query.Param;
        
        import java.util.List;
        
        // 어노테이션 생략 가능 -> IoC 처리 됨
        public interface ReplyJPARepository extends JpaRepository<Reply, Integer> {
            // 기본적인 주요 메서드 제공 받음 (구현체를 만들어 준다)
        
            // 1. 커스텀 쿼리를 만들어 본다. 어노테이션 사용
            // boardId 를 통해서 리플정보를 조회하는 기능
            @Query("select r from Reply r where r.board.id = :boardId")
            List<Reply> findByBoardId(@Param("boardId") Integer boardId); // 알아서 메서드의 바디를 만들어 준다.
            
        }
        728x90
        반응형

        'JPA' 카테고리의 다른 글

        [JPA] 30. RestAPI 주소 설계 규칙  (0) 2024.10.21
        [JPA] 29. CORS란 뭘까?  (0) 2024.10.21
        [JPA] 27. 게시글 삭제 오류 해결하기  (0) 2024.10.17
        [JPA] 26. 댓글 목록 보기 기능  (0) 2024.10.17
        [JPA] 25. 댓글 기능 작성하기  (1) 2024.10.16
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바