오류상황
회원가입 API 테스트 도중 해당 로직에서 문제가 발생하였다.
@Override
@Transactional
public UserInfo registerUser(UserCommand command) {
Users initUser = command.toEntity(policy);
Users user = userStore.store(initUser);
return new UserInfo(user);
}
org.springframework.dao.DataIntegrityViolationException: could not execute statement [Data truncation: Data too long for column 'phone_number' at row 1] [insert into users (address,created_at,email,name,password,phone_number,updated_at) values (?,?,?,?,?,?,?)]; SQL [insert into users (address,created_at,email,name,password,phone_number,updated_at) values (?,?,?,?,?,?,?)]
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:293) ~[spring-orm-6.1.15.jar:6.1.15]
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) ~[spring-orm-6.1.15.jar:6.1.15]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) ~[spring-orm-6.1.15.jar:6.1.15]
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-6.1.15.
오류분석 및 해결
오류방생메시지를 확인해 보면 `Data too long for column 'phone_number'` 회원테이블의 ` phone_number `칼럼의 선언된 length의 비해 Data의 크기가 길다는 의미이다.
실제 users의 엔티티를 확인해보면 ` length =20`으로 고정되어 있다.
package com.firstcomesystem.domain.users.entity;
@Entity
public class Users extends AbstractEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@Column(nullable = false, length = 20)
private String phoneNumber;
...
}
이것은 암호화를 생각하기 전 기존 전화번호 양식만을 생각하여 길이를 정해줘서 발생되는 문제였다. length의 길이를 암호화 기법에 맞게 수정하니 정상적으로 진행이 되었다.
'Trouble Shooting' 카테고리의 다른 글
[Trouble Shooting] Spring Security - io.jsonwebtoken.security.WeakKeyException 해결방법 (1) | 2024.12.27 |
---|---|
Error creating bean with name 'jpaAuditingHandler': (0) | 2024.12.13 |
[Git] .gitignore가 적용되지 않았을때 (0) | 2024.12.11 |
[Java] Scanner 입력 예외처리 시 무한로프 - 입력 버퍼를 비워라 (0) | 2024.01.04 |
[WSL/Ubuntu] 도커 세팅위한 Ubuntu 배포버전을 설치하다 발생한 이슈(0x80370102) + LG 노트북 (0) | 2023.11.16 |