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); } } }