아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
컬리 favicon컬리

JPA, UUID, MySQL: DB 조회 오류, 삽질 끝 해결!

by DD
2020-07-05
6년 전
조회수 4

JPA를 사용하여 UUID를 저장했지만, 조회에 실패하는 문제 발생

H2와 MySQL 환경의 차이점을 파악하고, 컬럼 길이 문제임을 확인

BINARY(16)으로 컬럼 속성을 변경하여 문제를 해결하고, 패딩 문제 분석

JPA, UUID, 그리고 BINARY 타입

JPA를 사용하여 UUID를 저장할 때, MySQL의 BINARY 타입과 관련된 문제를 겪었다. 구체적으로, H2 인메모리 DB에서는 문제없이 동작했지만, 실제 MySQL 환경에서는 조회가 되지 않았다. 따라서, 컬럼 길이 설정을 통해 문제를 해결했다.

H2 vs MySQL: 테스트 환경의 함정

테스트 환경의 차이로 인해 문제의 원인을 파악하는 데 어려움을 겪었다. H2는 BINARY 타입에 대한 패딩 처리를 다르게 처리한다. 반면, MySQL은 RPAD를 사용하여 을 수행한다. 따라서, 테스트 환경의 차이를 인지하는 것이 확보에 중요하다.

패딩
데이터 무결성

MySQL BINARY 패딩과 UUID 조회

MySQL에서 BINARY 타입은 저장 시 우측 패딩을 수행한다. 따라서, UUID를 정확하게 조회하려면 패딩된 값을 함께 검색해야 한다. 구체적으로, RPAD 함수를 사용하여 패딩 값을 맞춰야 한다. 결과적으로, 데이터베이스 스키마 설계 시 데이터 타입과 패딩에 대한 이해가 필요하다.

JPA 덕분에 DB에서 삽질한 이야기
중급
아키텍처
JPA
MySQL
UUID
Java
SQL
Backend
Data
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

AI 에이전트와 함께 레거시 시스템 성능 개선, SQL Injection, N+1 문제 해결!

데보션 로고

SQL 기초부터 실전까지 마스터!

더 프라임아젠 로고

Exposed, MySQL, Escape 문자 처리 문제, 디버깅으로 해결!

카카오뱅크 로고

신입 개발자들의 좌충우돌 프로젝트 회고: React, Java, MySQL 기반 리뷰 서비스 개발 경험 공유!

올리브영 로고

신입 개발자의 우편번호 서비스 구축 여정

벨로그 로고

스마트스토어, Oracle 탈출! MySQL 전환으로 성능과 비용 두 마리 토끼를 잡다

네이버 D2 로고
컬리 favicon컬리
중급
아키텍처
JPA
MySQL
UUID
Java
SQL
Backend
Data

관련 추천 글

AI 에이전트와 함께 레거시 시스템 성능 개선, SQL Injection, N+1 문제 해결!

데보션 로고

SQL 기초부터 실전까지 마스터!

더 프라임아젠 로고

Exposed, MySQL, Escape 문자 처리 문제, 디버깅으로 해결!

카카오뱅크 로고