code: private void addEmbeddedProperties(ClassMetadata classMetadata, SinglePropertyMetadata propertyMetadata) {
  		ClassMetadata nested = new ClassMetadata();
  		nested.setPersistentClass(propertyMetadata.getPropertyType());
  		visit(nested.getPersistentClass(), nested, new HashSet<String>());
  		for (Iterator<String> i = nested.getPropertyNames(); i.hasNext(); ) {
  			String propertyName = i.next();
  			EmbeddedPropertyMetadata property = new EmbeddedPropertyMetadata(propertyMetadata, nested.getProperty(propertyName));
  			doAddProperty(classMetadata, property);
  		}
  	}
docs: Recursively processes all nested {@link Embedded} properties and adds them as {@link EmbeddedPropertyMetadata} instances