[Spring] JPA 지연로딩 예외 LazyInitializationException
·
BE/SPRING
Bookstore [1:N] BookstoreReviewMember    [1:N] BookstoreReview -> BookstoreReview.java@ManyToOne(fetch = FetchType.LAZY)@JoinColumn(name = "bookstore_id", nullable = false)private Bookstore bookstore;@ManyToOne(fetch = FetchType.LAZY)@JoinColumn(name = "member_id",nullable = false)private Member member; -> Member.java@OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true..
[Spring] JWT + Spring Security
·
BE/SPRING
Spring Security Security Filter를 묶어 api , admin 등 인증 영역을 만들고이를 SecurityFilterChain 객체로 관리함 Client 와 Servlet 사이 Filter의 흐름에 따라 인증 과 권한 을 처리 Spring Security 인증 Authentication1. Request : client 로 부터 받은 정보(username, password) 를 가지고 인증 요청2. AuthenticationFilter가 가로채서 UsernamePasswordAuthenticationToken (인증용 객체) 생성3. Filter는 요청을 처리하고 AuthenticationManager의 구현체인 ProviderManager에 Authentication과 Userna..
[Spring] 점프 투 스프링 부트 3 DAY11
·
BE/SPRING
3-13 검색 기능 추가하기 검색 기능 구현하기 스프링으로 검색하면 스프링이라는 문자열이 제목,내용,질문작성자,답변,답변작성자에 존재하는지 찾고 결과 출력select distinct q.id, q.author_id, q.content, q.create_date, q.modify_date, q.subjectfrom question qleft outer join site_user u1 on q.author_id=u1.idleft outer join answer a on q.id=a.question_idleft outer join site_user u2 on a.author_id=u2.idwhere q.subject like '%스프링%' or q.content like '%스..
[Spring] 점프 투 스프링 부트 3 DAY10
·
BE/SPRING
3-10 추천 기능 추가하기엔티티에 속성 추가하기추천 기능을 구현하려면 질문이나 답변을 추천한 유저가 DB에 저장될 수 있도록 관련 속성을 질문,답변 엔티티에 추가해야함1.question 엔티티에 voter 속성 추가하나의 질문에 여러 사람이 추천할 수 있음 + 한 사람이 여러 개의 질문을 추천할 수 있음 =Many to Many@ManyToMany SetSiteUser> voter;Set 자료형 사용  2.Answer 엔티티에도 voter추가 3.author 속성 추가시와 달리Many to Many 애너테이션 사용시 새로운 테이블이 생성되어 관리  질문 추천 기능 생성하기 1.질문을 추천할 수 있는 버튼을 질문 상세 화면에 생성a href="javascript:void(0);"th:data-uri="@..
[Spring] 점프 투 스프링 부트 3 DAY9
·
BE/SPRING
3-08 글쓴이 항목 추가하기 질문,답변 작성시 반드시 로그인 되어있어야 하며 사용자 정보도 DB에 저장해 글쓴이 항목 표시하기  엔티티에 속성 추가하기 Question,Answer 엔티티에 글쓴이 - author 속성 추가   글쓴이 저장하기새로운 데이터를 추가해서 저장하려면 서버와 DB를 관리하는 컨트롤러와 서비스,리포지터리도 업데이트해야함  답변 컨트롤러와 서비스 업데이트하기 AnswerController에서현재 로그인한 사용자 정보를 알려면 스프링 시큐리티가 제공하는 Principal 객체 사용*principal.getName() 호출해 현재 로그인한 사용자의 사용자명를 알 수 있음 ->이 사용자명으로 SiteUser 객체를 찾는 getUser메서드를 UserService에 추가 public Si..