code: private void storeReferences(Object obj, ClassDescriptor cld, boolean insert, boolean ignoreReferences)
      {
          // get all members of obj that are references and store them
          Collection listRds = cld.getObjectReferenceDescriptors();
          // return if nothing to do
          if(listRds == null || listRds.size() == 0)
          {
              return;
          }
          Iterator i = listRds.iterator();
          while (i.hasNext())
          {
              ObjectReferenceDescriptor rds = (ObjectReferenceDescriptor) i.next();
              /*
              arminw: the super-references (used for table per subclass inheritance) must
              be performed in any case. The "normal" 1:1 references can be ignored when
              flag "ignoreReferences" is set
              */
              if((!ignoreReferences && rds.getCascadingStore() != ObjectReferenceDescriptor.CASCADE_NONE)
                      || rds.isSuperReferenceDescriptor())
              {
                  storeAndLinkOneToOne(false, obj, cld, rds, insert);
              }
          }
      }
docs: Store all object references that <b>obj</b> points to.
  All objects which we have a FK pointing to (Via ReferenceDescriptors) will be
  stored if auto-update is true <b>AND</b> the member field containing the object
  reference is NOT null.
  With flag <em>ignoreReferences</em> the storing/linking
  of references can be suppressed (independent of the used auto-update setting),
  except {@link org.apache.ojb.broker.metadata.SuperReferenceDescriptor}
  these kind of reference (descriptor) will always be performed.
  
  @param obj Object which we will store references for