에러 메세지 Exception evaluating SpringEL expression EL1007E: Property or field 'id' cannot be found on null 에러 원인 DTO객체를 리턴받아 th:value="${dto.id}"로 주었는데, null을 받아와서 에러 발생 해결 th:value="${dto?.id}
에러 메세지 없음 원인 대소문자를 구분못해서 계속 소문자 형태의 table이 생성됨 그러다보니 기존 User 테이블에서 데이터를 조회하지 못해서 계속 null을 가져옴. 해결 application.properties에 아래 코드 추가 spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전 입니다. [ 검색 기능 ] Specification 여러 테이블에서 데이터를 검색해야 할 경우에는 JPA가 제공하는 Specification 인터페이스를 사용하는 것이 편리하다. Specification을 어떻게 사용할 수 있는지 예제를 통해서 알아보자. Specification Specification은 보다 정교한 쿼리의 작성을 도와주는 JPA의 도구이다. https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#specifications QuestionService에 search 메서드를 추가하고, getL..
해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전 입니다. 엔티티 변경 질문, 답변의 추천은 추천한 사람(SiteUser 객체)을 질문, 답변 엔티티에 추가해야 한다. Question (... 생략 ...) import java.util.Set; import jakarta.persistence.ManyToMany; (... 생략 ...) public class Question { (... 생략 ...) @ManyToMany Set voter; } Answer (... 생략 ...) import java.util.Set; import jakarta.persistence.ManyToMany; (... 생략 ...) public ..
해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전 입니다. 수정 일시 Question과 Answer 엔티티에 modifyDate필드를 추가해 DB에 컬럼을 추가시키자 private LocalDateTime modifyDate; 질문 수정 작성한 질문을 수정하려면 질문 상세 화면에서 "수정" 버튼을 클릭하여 수정 화면으로 진입해야 한다. 질문 수정 버튼 question_detail에 질문 수정버튼을 추가하자. (... 생략 ...) (... 생략 ...) #authentication.getPrincipal().getUsername() == question.author.username을 적용하였다. 로그인한 사용자와 글쓴이가 다..
해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전 입니다. 질문 목록 question_list.html 템플릿에 글쓴이를 표시해 보자. (... 생략 ...) 번호 제목 글쓴이 작성일시 (... 생략 ...) 글쓴이 항목을 추가했다. 그리고 th 엘리먼트를 가운데 정렬하도록 tr 태그에 text-center 클래스를 추가하고 제목의 너비가 전체에서 50%를 차지하도록 style="width:50%"도 지정해 주었다. for 문에도 다음처럼 글쓴이를 적용하자. question.list_html (... 생략 ...) (... 생략 ...) ... 엘리먼트를 삽입하여 질문의 글쓴이를 표시했다. 작성자 정보 없이 저장된 이전의 질..
해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전 입니다. Question 속성 추가 Question 엔티티에 author 속성을 추가하자. (... 생략 ...) import javax.persistence.ManyToOne; import com.example.board.user.SiteUser; (... 생략 ...) public class Question { (... 생략 ...) @ManyToOne private SiteUser author; } 여러개의 질문이 한 명의 사용자에게 작성될 수 있으므로 @ManyToOne 관계가 성립한다. Answer 속성 추가 Answer 엔티티에도 추가해주자. (... 생략 ...)..
문득 점프 투 스프링부트 교재를 공부하다 시큐리티는 인증과 권한을 담당한다는 문구를 보고 관리자같은 권한을 따로 부여하는 방법이 궁금해졌다. 해당 글은 스프링 시큐리티 - 점프 투 스프링부트(게시판 만들기) 편과 연계된다. 만들어 놓았던 SecurityConfig를 살펴보자. package com.example.board.practice; (... 생략 ...) @Configuration @EnableWebSecurity public class SecurityConfig { @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests().requestMatchers( new AntP..