code: static Object getObjectFromDocument(Metamodel metamodel, BasicDBObject documentObj, Set<Attribute> columns,
              Object obj) throws InstantiationException, IllegalAccessException
      {
          // try
          // {
          // Object obj = clazz.newInstance();
          for (Attribute column : columns)
          {
              if (((MetamodelImpl) metamodel).isEmbeddable(((AbstractAttribute) column).getBindableJavaType()))
              {
                  DefaultMongoDBDataHandler handler = new DefaultMongoDBDataHandler();
                  handler.onViaEmbeddable(column, obj, metamodel, documentObj);
              }
              else
              {
                  setFieldValue(documentObj, obj, column, false);
              }
          }
          return obj;
          // }
          // catch (InstantiationException e)
          // {
          // throw new PersistenceException(e);
          // }
          // catch (IllegalAccessException e)
          // {
          // throw new PersistenceException(e);
          // }
      }
docs: Creates an instance of <code>clazz</code> and populates fields fetched
  from MongoDB document object. Field names are determined from
  <code>columns</code>
  
  @param documentObj
  the document obj
  @param clazz
  the clazz
  @param columns
  the columns
  @return the object from document
  @throws IllegalAccessException
  @throws InstantiationException