전체 글

일단 맨땅에 헤딩한 뒤에 배우는 타입입니다
삽질..

@Transactional : 내부 method로 사용하면 안된다? !

수요일 오후, 도서관에 앉아 평화롭게 Spring boot 프로젝트를 진행하고 있던 부추.. 게시글에 좋아요 기능을 달기 위해 DB 수정 작업을 진행하던 도중, 무언가 이상함을 느끼게 된다. 해야하는 일은 getDataById()를 통해 얻은 DB data의 필드값 하나(좋아요 개수)를 바꾸는 일이었다. @Transactional 붙인 뒤에 data.increaseLikeNum() 이런거 하나 정의해서 뚝딱! 하면 되는거 아닌가 하고 별생각 없었는데, 이걸.. DB에 언제 어떻게 저장해야하는지.. 저 메쏘드를 언제 호출해야하는지 단계에서 막혔다. Optional 처리를 위해 data 객체를 @Transactional이 붙은 다른 내부 private method를 통해 불러왔다. 어, 이렇게 되면 내부 m..

삽질..

Spring Security의 Security Filter Chain 관련 Exception handling하기

Security Filter Chain에 등록된 authorization에 맞지 않는 client request가 들어왔을 때, 내가 해당 요청을 핸들링 하고 싶었다. Spring에서 상식적(?)으로 알려진 Exception 처리 방법이다.. @ControllerAdvice @Slf4j public class GreenFarmExceptionHandler { @ExceptionHandler(Exception.class) public String handleException( Exception e, HttpServletRequest request, Model model) { log.info("!! Unknown error! URL: {}, Stack Trace: {}", request.getRequestU..

삽질..

[에러] Neither BindingResult nor plain target object for bean name '----' available as request attribute

thymeleaf로 form data를 받고 jakarta의 @Valid annoatation을 이용해 데이터 유효성을 검증한 뒤 binding result에 해당 오류가 있을 때 나타나는 error. @GetMapping("/register") public String getRegisterPage(Model model) { // set-up ID & name at first registration model.addAttribute("registerUser", RegisterUserDto.fromSession( (SessionUser) httpSession.getAttribute("user"))); return "register.html"; } @PostMapping("/register") public ..

JAVA/Spring

Query DSL 설정오류 : Unable to load class 'javax.persistence.Entity'.

각 버전은 Spring boot 3.0.2, gradle 7.6, java 17, QueryDSL 5.0.0 기준입니다. JPA 공부중 QueryDSL을 사용하기 위해 열심히 구글링해서 gradle 설정 파일에 추가할 것을 다 추가했다. 참고한 글들 중 하나는 아래와 같다. Spring Boot, Gradle 환경에 Querydsl 설정 방법 Spring Boot, Gradle 환경에 Querydsl 설정 방법 Spring Boot, Querydsl 최신 버전을 사용하면서 QueryDSL 적용 방법에 변동이 생긴 듯하다. 참고로, 현재 프로젝트는 spring-boot-2.6.3, gradle-7.3.2 버전을 사용 중이다. data-make.tistory.com 설레는 마음으로 complieQueryDS..

김부추
두들두들