springboot
[Spring Data JPA & Querydsl] - QuerydslPredicateExecutor 사용시 javax.persistence.noresultexception 오류 원인
spring data jpa querydsl spring boot 3.x.x hal-explorer 을 이용하여 개발시 오류에 대해서 기록 JpaRepository, QuerydslPredicateExecutor를 다중으로 상속받은 인터페이스를 이용해서 api를 호출했는데, javax.persistence.noresultexception 오류가 발생. 딱히 문제에 대한 기록도 없고 컴파일 오류도 없기 때문에 멘붕이 왔다. 우선 원인은 3.0 이상 버전을 사용했기 때문에 gradle에 의존성 추가한 디펜던시들이 참고했던 예제와 달라서 발생했다. 2 버전대로 낮추니jakarta를 참조했던 라이브러리들을 모두 javax.persistence로 수정. 또한 스프링 버전에 맞게 각각 라이브러리의 버전을 맞추니 해..
[QueryDSL] update 시 in 조건을 사용할 경우
API 개발중 QueryDSL로 in 조건 적용을 하는 방법에 대해 갑자기 생각나지 않아서 찾아보고 기록하기 위해서 작성 입고를 취소하기 위한 기능인데, 입고번호를 여러개 체크해서 요청할 경우의 클래스이다. @Data public static class InboundCancelRequest{ private String inboundNo; } inboundNo를 List로 받아서 벌크 연산 처리 public void inboundCancel(List request) { queryFactory.update(inboundItem) .set(inboundItem.status, false) .where(inboundItem .inbound .inboundNo.in(request.stream() .map(Inbou..

[Spring Boot] 배포시 오류: java.lang.NoClassDefFoundError
Spring Boot로 개발을 하다가 로컬에서 빌드해서 API 호출하면 잘 되는데... 이상하게 배포할 때만 java.lang.NoClassDefFoundError 오류가 발생한다. 이걸로 몇 시간을... 삽질했는데... 다른 사람들은 classpath나 프로젝트에 참조등 다양하게 해결했는데 나같은 경우는 너무 간단하다.... //파일 관련 implementation group: 'commons-io', name: 'commons-io', version: '2.11.0' 저기 implementation를... compileOnly로 했기 때문.... 웹에서 긁어와 그대로 복사&붙여넣기 했더니 저기 볼 생각은 안했다. complieOnly이기 때문에 jar로 빌드시에 참조가 제대로 안되었던 것 같다. 지금..

[Spring Boot & Docker] Docker 빌드 오류: ERROR [2/2] COPY ..
spring boot로 배포를 Docker로 하기 위해 빌드하는 도중 오류가 발생했다. 아래는 빌드하기 위한 Dockerfile FROM openjdk:8 ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] 두번의 오류가 발생했는데, 1. openjdk:8 문구 오류 예전에 기록했던 내용은 FROM openjdk:8-jdk-alpine 이었지만... 8 뒤의 -jdk-alpine로 오류가 발생. 지우고 다시 빌드하니 조금 되는가 싶더니 다시 오류 발생. 2. JAR_FILE 경로 오류 두번째는 jar 파일의 경로 오류. 프로젝트에는 각각의 jar 파일 빌드시 생성되는 경로가 있는데 예전에는 ..

[Spring Boot] 파일 업로드시 톰캣 경로가 나오는 경우
현재 내가 테스트 중인 개발 환경은 Backend와 Frontend를 분리한 상태이다. Backend에서 파일업로드 API 생성하여 Frontend에서 API를 호출하여 파일 업로드 처리를 하려는데, 이상하게 계속 Tomcat의 모든 경로가 노출된 경로에서 이후 yml 파일에 설정한 path 경로가 이어지게 된다. 예: C:\\Users\\hanks\\AppData\\Local\\Temp\\tomcat.80.15101316688673606216\\work\\Tomcat\\localhost\\ROOT\\uploads\\yLgPrNWG5w.jpg (uploads가 내가 yml 파일에 설정한 경로) 원인은 yml파일에 경로를 잘못 입력해서...윈도우일 경우 yml 파일의 path에 절대 경로로 입력해줬더니 해..