code: private String serializeIdAttributeValue(final EntityMetadata m, MetamodelImpl metaModel, Object id)
      {
          if (!metaModel.isEmbeddable(m.getIdAttribute().getBindableJavaType()))
          {
              return null;
          }
  
          Class<?> embeddableClass = m.getIdAttribute().getBindableJavaType();
          String idUniqueValue = "";
  
          for (Field embeddedField : embeddableClass.getDeclaredFields())
          {
              if (!ReflectUtils.isTransientOrStatic(embeddedField))
              {
  
                  Object value = PropertyAccessorHelper.getObject(id, embeddedField);
                  if (value != null && !StringUtils.isEmpty(value.toString()))
                      idUniqueValue = idUniqueValue + value + COMPOSITE_KEY_SEPARATOR;
              }
          }
  
          if (idUniqueValue.endsWith(COMPOSITE_KEY_SEPARATOR))
              idUniqueValue = idUniqueValue.substring(0, idUniqueValue.length() - COMPOSITE_KEY_SEPARATOR.length());
          return idUniqueValue;
      }
docs: Prepares ID column value for embedded IDs by combining its attributes
  
  @param m
  @param id
  @param metaModel
  @return