code: private void marshalWithExplodedStrategy(EmbeddedMetadata embeddedMetadata, Object target) {
      try {
        Object embeddedObject = initializeEmbedded(embeddedMetadata, target);
        for (PropertyMetadata propertyMetadata : embeddedMetadata.getPropertyMetadataCollection()) {
          marshalField(propertyMetadata, embeddedObject);
        }
        for (EmbeddedMetadata embeddedMetadata2 : embeddedMetadata.getEmbeddedMetadataCollection()) {
          marshalWithExplodedStrategy(embeddedMetadata2, embeddedObject);
        }
      } catch (Throwable t) {
        throw new EntityManagerException(t);
      }
    }
docs: Marshals an embedded field represented by the given metadata.
  
  @param embeddedMetadata
  the metadata of the embedded field
  @param target
  the target object to which the embedded object belongs