protected <ENTITY extends Entity> void doConvertToEntity(
     ENTITY entity, Map<String, ? extends Object> columnMap, List<ColumnInfo> columnInfoList) {
   entity.clearModifiedInfo();
   final MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer(columnMap);
   for (ColumnInfo columnInfo : columnInfoList) {
     final String columnName = columnInfo.getColumnDbName();
     final String propertyName = columnInfo.getPropertyName();
     final String uncapPropName = initUncap(propertyName);
     final Class<?> nativeType = columnInfo.getObjectNativeType();
     if (analyzer.init(columnName, uncapPropName, propertyName)) {
       final Object value;
       if (String.class.isAssignableFrom(nativeType)) {
         value = analyzer.analyzeString(nativeType);
       } else if (Number.class.isAssignableFrom(nativeType)) {
         value = analyzer.analyzeNumber(nativeType);
       } else if (Date.class.isAssignableFrom(nativeType)) {
         value = analyzer.analyzeDate(nativeType);
       } else if (Boolean.class.isAssignableFrom(nativeType)) {
         value = analyzer.analyzeBoolean(nativeType);
       } else if (byte[].class.isAssignableFrom(nativeType)) {
         value = analyzer.analyzeBinary(nativeType);
       } else if (UUID.class.isAssignableFrom(nativeType)) {
         value = analyzer.analyzeUUID(nativeType);
       } else {
         value = analyzer.analyzeOther(nativeType);
       }
       columnInfo.write(entity, value);
     }
   }
 }