/** INTERNAL: Initialize the mapping. */
 @Override
 public void initialize(AbstractSession session) {
   super.initialize(session);
   initializeForeignKeys(session);
   setFields(collectFields());
   if (getTypeField() != null) {
     setTypeField(getDescriptor().buildField(getTypeField()));
   }
   if (shouldInitializeSelectionCriteria()) {
     initializeSelectionCriteria(session);
   }
 }