@PostMapping의 consumes 속성은 Spring MVC에서 해당 컨트롤러 메서드가 처리할 수 있는 Content-Type을 지정하는 역할을 합니다.즉, 클라이언트가 요청을 보낼 때 Content-Type 헤더가 consumes에 지정된 타입과 정확히 일치하거나 호환되지 않으면, Spring은 이 요청을 해당 핸들러 메서드로 라우팅하지 않고, HTTP 415 Unsupported Media Type 오류를 발생시킵니다.✅ consumes가 있을 때 Spring의 동작 흐름1. 클라이언트 요청이 들어오면요청의 Content-Type 헤더를 확인합니다.2. 해당 @RequestMapping 또는 @PostMapping의 consumes와 비교요청의 Content-Type과 consumes 속성의 ..
좋은 질문입니다!@RequestPart는 Content-Type이 multipart/form-data일 때, 각 part를 분리해서 받을 수 있도록 도와주는 어노테이션입니다.즉, 단순히 "Content-Type이 다를 때 사용하는 것"이라기보다는:👉 multipart/form-data 요청 내에 포함된 각각의 Part (JSON, 파일 등)를 받을 때 사용하는 것입니다.✅ 핵심 개념 요약📌 @RequestPart는 언제 사용하는가?Content-Type: multipart/form-data 요청에서,multipart 본문 안에 JSON 데이터 + 파일이 함께 포함될 경우@RequestParam, @ModelAttribute로는 JSON 객체를 받을 수 없기 때문에 → @RequestPart를 사용🔍..
에러 메시지:HHH000342: Could not obtain connection to query metadata org.postgresql.util.PSQLException: 치명적오류: 최대 동시 접속자 수를 초과했습니다.는 PostgreSQL 데이터베이스의 최대 연결 수(max_connections)를 초과해서 더 이상 연결을 할 수 없는 상태를 의미합니다. 이는 Spring 애플리케이션 또는 다른 클라이언트들이 너무 많은 커넥션을 열어두고 있거나, 커넥션을 제대로 닫지 않아서 발생합니다.✅ 원인 요약PostgreSQL 서버의 max_connections 제한 초과기본값은 보통 100개.Spring Boot 애플리케이션에서 너무 많은 커넥션을 생성하거나 풀에 반납하지 않음HikariCP 기본 설정..
오류 메시지:java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified.은 features.get(0)으로 받은 Map 객체가 수정 불가능한 읽기 전용 맵일 때 발생하는 대표적인 예외입니다. 이 경우는 TupleBackedMap 이라는, 아마도 QueryDSL 또는 내부 라이브러리에서 생성된 Immutable Map 객체입니다.❗문제 원인Map featureMap = features.get(0);bizFclt.putAll(featureMap); // ← 여기서 featureMap이 불변 Map이라 예외 발생featureMap이 TupleBackedMap (수정 불가) 이기 때문에, 이를 putAll 대상으로 사용하면 예외가 발..
QBizInfo.dcrpPpl.rgtr가 사용자 ID라면, 이 값과 사용자 테이블(User)의 PK 또는 FK를 매핑해서 조인할 수 있습니다. 아래 예시는 사용자 테이블과 조인하여, 예를 들어 user.name 또는 user.dept 등의 컬럼도 함께 가져오는 방식입니다.✅ 전제 조건사용자 테이블이 User이고, QueryDSL Q타입은 QUser user = QUser.user라고 가정하겠습니다.QBizInfo.dcrpPpl.rgtr 값은 user.userId와 매핑된다고 가정합니다.✅ 변경된 코드 (User 테이블 조인 포함)public class BizInfoRepositoryImpl implements BizInfoRepositoryCustom { private final JPAQueryFa..
Multipart 파일을 JPA로 저장하려면 다음과 같은 순서로 Controller → Service → Repository → Entity 단을 수정하면 됩니다.당신의 기존 구조(@RequestBody로 JSON DTO만 받던 구조)를 Multipart + JSON 조합으로 확장할 수 있습니다.✅ 1. 목표 요약기존에는 @RequestBody로 InftwtAnlsSaveDto만 전달이제는 Multipart 요청으로 파일 + JSON 데이터를 함께 받음파일은 MultipartFile, JSON은 문자열로 받아서 ObjectMapper로 역직렬화✅ 2. Controller 변경@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)public Inftwt..
물론입니다. Hibernate와 Spring Data R2DBC는 모두 **RDB(Relational Database)**와 연결하는 ORM 또는 데이터 접근 기술이지만, 동작 방식과 철학, 적용 환경이 완전히 다릅니다.✅ 1. Hibernate📌 개요Hibernate는 Java 진영에서 가장 널리 사용되는 동기식 ORM 프레임워크입니다.Spring Data JPA는 내부적으로 Hibernate를 기본 구현체로 사용합니다.📋 주요 특징항목 설명프로그래밍 모델동기 방식 (Thread blocking)기반 기술JPA (Jakarta Persistence API)트랜잭션표준 @Transactional 지원데이터베이스 연결JDBC 사용쿼리 언어JPQL, Criteria API, Native SQL캐싱1차 캐..
@ReactiveFeignClient과 @FeignClient는 모두 원격 HTTP API를 선언적으로 호출하기 위한 인터페이스를 정의할 때 사용됩니다.하지만 둘은 동작 방식과 비동기 처리 모델에서 큰 차이를 가집니다.✅ 핵심 차이 요약항목 @FeignClient @ReactiveFeignClient패키지org.springframework.cloud.openfeign.FeignClientreactivefeign.spring.config.ReactiveFeignClient방식동기 또는 CompletableFuture 기반 비동기완전한 리액티브 (Mono/Flux 기반)리턴 타입일반 객체, Future, CompletableFutureMono, Flux블로킹 여부블로킹 (동기) 또는 준비동기논블로킹 (진정한..
- Total
- Today
- Yesterday
- springboot
- oracle
- object key
- CSS
- devtools
- sumifs
- $.extend
- caniuse
- 정규식
- JQuery
- @ExceptionHandler
- QueryDSL
- spring
- lombok
- 전후방탐색
- getter
- 프로젝트명변경
- element위치
- setter
- ul li로 테이블
- border-collapse
- Keycode
- Javascript
- $.each
- DatePicker
- excel
- 진열사랑
- draw.io
- PostgreSQL
- 여러 컬럼 update
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |