Backend

[MyBatis] String을 넘겼을때 Out of range value for column 오류 해결..?

연_우리 2022. 1. 25. 19:29
반응형

[OrderPost 테이블]

@Getter @ToString
public class OrderPost {
    private Long id;
    private String orderId;
    private Long postId;
    private int count;
}
@Mapper
@Repository
public interface OrderRepository {

	@Select("select * from orderpost")
	List<OrderPost> getOrders();

}

 

코드에 문제가 없는거같은데.. 아래와 같이 오류가 발생했다.

(아니 이렇게 간단한 코드에 문제랄게 뭐가있어 대체..ㅜㅜ)

 

 

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Error attempting to get column 'orderid' from result set.  Cause: java.sql.SQLException: Out of range value for column 'orderid' : value 2201251714720e1a
; Out of range value for column 'orderid' : value 2201251714720e1a; nested exception is java.sql.SQLException: Out of range value for column 'orderid' : value 2201251714720e1a] with root cause

 

java.sql.SQLException: Out of range value for column 'orderid' : value 2201251714720e1a
at org.mariadb.jdbc.internal.com.read.resultset.rowprotocol.TextRowProtocol.getInternalLong(TextRowProtocol.java:348) ~[mariadb-java-client-2.7.4.jar:na]
at org.mariadb.jdbc.internal.com.read.resultset.rowprotocol.TextRowProtocol.getInternalInt(TextRowProtocol.java:254) ~[mariadb-java-client-2.7.4.jar:na]

...

 

 

 

구글에 검색했을때는 다 숫자형식에서 문제가 발생하는건데

문제되는 orderid를 varchar로 지정했고 길이도 200으로 엄청 넉넉하다

저장된 문자열을 2글자로 해봐도, 외래키를 다 없애봐도 똑같은 오류만 발생했다

 

 

근데 정말 어이없게 해결했다

orderid 순서를 밑으로 내렸다

그랬더니 된다

 

....

....

 

.....??

 

 

아니 내가 잘 몰라서그러는데.. 외래키를 없애도 오류가 났었는데

대체 뭐가 문제였던거니..??????????? 

반응형
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오톡 공유하기