(기술) Object, map 변환
Map과 객체간의 변환 방법을 정리해 놓으려고 합니다.
Object -> Map
PropertyUtils class의 describe 메소드를 이용합니다.
map = PropertyUtils.describe(object);
Map -> Object
BeanUtils class의 populate 메소드를 이용합니다.
BeanUtils.populate(object, map);
※사용 중 이슈
변환할 Object 내에 Date, Timestamp, BigDecimal등의 변수 데이터가 있는 경우 No value specified for "Timestamp"와 같은 에러 메시지를 출력하면서 변환에 실패합니다.
이 경우 다음과 같이 컨버터를 등록하여 해결하였습니다.
beanUtilsBean.getConvertUtils().register(new SqlTimestampConverter(null), java.sql.Timestamp.class);
beanUtilsBean.getConvertUtils().register(new BigDecimalConverter(null), java.math.BigDecimal.class);