서로 연결된 로직을 이해하고 나니, 만들기가 수월해졌다.
게시판은, 한 회원이 여러 게시글을 작성할 수 있으므로, n:1 관계로 연결하고, member_id에 join 시켜주었다.
회원은, 1:n 으로 연결해주었다.
게시판이 저장될 때마다, 작성자의 id를 받아와서 저장할 수 있도록 인터페이스를 수정해주었다.
해당 id를 저장된 DB에서 찾고, 그 멤버에 게시판을 넣어주고, 게시판을 생성하도록 하였다.
BulletinBoardService에서도 memberRepository를 사용하기 위하여, 의존성을 추가해줬고, 만약 해당 id의 member가 존재한다면, 저장할 수 있게 만들었다.
이 부분에서 막혔었는데, 어떻게 하면 로그인 한 회원의 정보를 가져올 수 있을까? 라는 생각에 찾아본 결과, 데이터를 저장할 수 있는 HttpSession을 찾았다. 이때 내가 쓴 것의 구조는 session.setAttrubute(String name, Object object)이다.
이것은 세션을 이름과 객체로 매핑한다.
HttpSession에서 저장한 객체를 받아와서, 그 멤버의 id를 조회하고 bulletinBoardService.create()에 넣어줌으로서 Join을 끝냈다.
테이블끼리 Join은 됐는데, 수정,삭제 권환이 모두에게 있는 것이 문제이다. 다음 시간에는 회원 별로 쓴 각자의 게시글에서만 수정/삭제가 가능하게 바꿔보겠다.
웹서버 - Calendar (0) | 2024.11.19 |
---|---|
웹서버 - 투표 기능 (0) | 2024.11.12 |
게시판진행상황(6) - 회원가입과 로그인 구현 (1) | 2024.02.26 |
게시판 진행상황(5) - PostgreSQL 연결완료 (0) | 2024.02.13 |
게시판 진행상황(4) 삭제 완료 (1) | 2024.02.08 |