code: protected void bindDependentKeyValue(PersistentProperty property, DependantValue key,
                                           InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
  
          if (LOG.isDebugEnabled()) {
              LOG.debug("[GrailsDomainBinder] binding  [" + property.getName() + "] with dependant key");
          }
  
          PersistentEntity refDomainClass = property.getOwner();
          final Mapping mapping = getMapping(refDomainClass.getJavaClass());
          boolean hasCompositeIdentifier = hasCompositeIdentifier(mapping);
          if ((shouldCollectionBindWithJoinColumn((ToMany) property) && hasCompositeIdentifier) ||
                  (hasCompositeIdentifier && ( property instanceof ManyToMany))) {
              CompositeIdentity ci = (CompositeIdentity) mapping.getIdentity();
              bindCompositeIdentifierToManyToOne((Association) property, key, ci, refDomainClass, EMPTY_PATH, sessionFactoryBeanName);
          }
          else {
              bindSimpleValue(property, null, key, EMPTY_PATH, mappings, sessionFactoryBeanName);
          }
      }
docs: Binds the primary key value column
  
  @param property The property
  @param key      The key
  @param mappings The mappings
  @param sessionFactoryBeanName The name of the session factory