mybatis 2

[SpringBoot] Enum타입을 DB에 변환 저장하는 법

Mybatis를 사용하여 DB에서 User정보를 가져오는 부분에서 다음과 같은 에러가 발생했다. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'USER_ROLE' from result set.... User 클래스에 해당 사용자가 SELLER인지 ORDERER인지를 구분하는 USER_ROLE이라는 Enum을 사용하고 있는데, DB에서는 USER_ROLE을 INTEGER타입으로 저장하고 있기 때문에 값을 불러오는데에서 타입변환 문제가 발생한 것이다. - User class @AllArgsC..

SQL Mapper와 ORM 차이

프로그램을 실행하는 동안 그 안에서는 많은 데이터들이 사용되고, 만들어진다. 우리는 이 데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 것이 필요한데, 이 개념이 바로 영속성(Persistence)이다. 이는 Layered Architecture에서 다음과 같이 도메인 모델과 데이터베이스 사이에 존재하며, 프로그램의 객체정보를 DB에 저장하고, DB의 정보를 객체로 담아와 사용할 수 있도록 한다. 자바에서는 데이터의 영속성(Persistence)를 위한 JDBC를 지원해주는데, 그림에서 보이는 프로세스와 같이 JDBC에서 DB에 접근하여 SQL을 수행하고, 결과값을 다시 dataType으로 매핑시켜주는 작업을 개발자가 일일히 수행해야 하는 번거로움이 있다. SQL Mapper와 ORM은..

Programming/JPA 2021.08.22