优化属性copy逻辑

This commit is contained in:
zhouhao
2017-07-26 15:26:12 +08:00
parent 834fb1bae8
commit 7110ff5cd3

View File

@@ -19,6 +19,7 @@
package org.hswebframework.web.commons.entity.factory;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.hswebframework.web.NotFoundException;
import org.hswebframework.utils.ClassUtils;
import org.slf4j.Logger;
@@ -80,6 +81,10 @@ public class MapperEntityFactory implements EntityFactory {
PropertyCopier<S, T> copier = copierCache.<S, T>get(getCopierCacheKey(source.getClass(), target.getClass()));
if (null != copier) return copier.copyProperties(source, target);
Object sourcePar = JSON.toJSON(source);
if (sourcePar instanceof JSONObject) {
return ((JSONObject) sourcePar).toJavaObject((Class<T>) target.getClass());
}
return JSON.parseObject(JSON.toJSONString(source), (Class<T>) target.getClass());
} catch (Exception e) {
logger.warn("copy properties error", e);