/** * @Title: BaseMongoEntity.java * @Description: TODO * @author: Calvinyang * @date: Oct 12, 2014 1:57:16 PM * Copyright: Copyright (c) 2013 * @version: 1.0 */ package edu.fudan.webclient.entity; import java.lang.reflect.Field; import org.bson.types.ObjectId; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; /** * @author: Calvinyang * @Description: TODO * @date: Oct 12, 2014 1:57:16 PM */ public abstract class BaseMongoEntity implements IMongoEntity { @Override public DBObject toDBObject() { DBObject obj = new BasicDBObject(); Field[] fields = getClass().getDeclaredFields(); try { for (Field field : fields) { field.setAccessible(true); if (field.get(this) != null) { obj.put(field.getName(), field.get(this)); } field.setAccessible(false); } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } if (obj.containsField("id")) { obj.put("_id", new ObjectId(obj.get("id").toString())); obj.removeField("id"); } return obj; } }