민뭉아치
민뭉아치
민뭉아치
전체 방문자
오늘
어제
  • 분류 전체보기 (62)
    • ㅁㅁㅇㅊ's Life (0)
      • Diary (1)
      • Certification (6)
      • English (1)
      • 독서 (1)
    • Algorithm (25)
    • Web (2)
    • Language (3)
      • JavaScript (1)
      • JAVA (2)
    • Spring boot (9)
    • Cloud (0)
    • DevOps (1)
    • Trouble Shooting (6)
    • 개발환경 (3)
    • 짤막IT지식 (4)

블로그 메뉴

  • 홈
  • 깃허브
  • 방명록

공지사항

인기 글

태그

  • 정보처리기사
  • Spring
  • 코딩테스트
  • 자바
  • 알고리즘
  • Java
  • 자격증
  • 백준알고리즘
  • 백준
  • Algorithm

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
민뭉아치

민뭉아치

QLRM 네이티브 쿼리 DTO type 오류
Trouble Shooting

QLRM 네이티브 쿼리 DTO type 오류

2022. 4. 14. 16:24

1. 문제 사항

쿼리문을 실행 시, qrlm 라이브러리를 사용하여 DB의 결과를 DTO와 맵핑하는 과정에서 오류가 발생했다.

 

Service

...
JpaResultMapper result = new JpaResultMapper();
List<SubscribeDto> subscribeDtoList = result.list(query, SubscribeDto.class);
...

SubscribeDto

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class SubscribeDto {
    private Long id;
    private String username;
    private String profileImageUrl;
    private Long subscribeState;
    private Long equalUserState;
}

 

 

2. 원인

UserEntity 생성 시, id의 타입을 Long 설정하니 MySQL에서 id의 타입을 확인해 본 결과 BIGINT로 설정되었다.

MySQL

MySQL 데이터 타입과 Java 데이터 타입이 맞지않아 발생한 오류 같다.

MySQL의 BIGINT 데이터 타입은 Java에서 Long 또는 BigInteger 타입과 비교할 수 있다.

DTO의 타입을 Long으로 받았지만 오류가 발생한걸 보면 Unsigned라서 BigInteger을 받아야 하나보다.

 

 

3. 해결

DTO에서 BigInteger로 받아주니 잘 작동한다.

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class SubscribeDto {
    private BigInteger id;
    private String username;
    private String profileImageUrl;
    private BigInteger subscribeState;
    private BigInteger equalUserState;
}

 

 

4. 참고

 

MySQL 데이터 타입 Java 데이터 타입 비교

TINYINT Integer BIT Boolean BOOL/BOOLEAN (TINYINT(1)) Integer SMALLINT Unsigned 상관없이 Integer MEDIUMINT Integer, Unsinged라면 Long INT Integer, Unsigned라면 Long BIGINT Long, Unsigned라면 java.ma..

goldfishhead.tistory.com

 

반응형

'Trouble Shooting' 카테고리의 다른 글

리소스를 HTTPS 프로토콜 호출로 인한 ERR_SSL_PROTOCOL_ERROR 발생, Mixed Content  (0) 2024.04.17
Spring Boot Jpa IllegalArgumentException 에러  (2) 2022.05.18
AWS EC2 Gradle 배포 시 멈춤현상  (0) 2022.05.04
Spring boot와 h2 Database 연동 오류발생  (0) 2022.04.10
[Hibernate Error] TransientPropertyValueException : object references an unsaved transient instance  (0) 2022.03.21
    'Trouble Shooting' 카테고리의 다른 글
    • Spring Boot Jpa IllegalArgumentException 에러
    • AWS EC2 Gradle 배포 시 멈춤현상
    • Spring boot와 h2 Database 연동 오류발생
    • [Hibernate Error] TransientPropertyValueException : object references an unsaved transient instance
    민뭉아치
    민뭉아치
    Do Better Today Than You Were Yesterday

    티스토리툴바